<SEC-DOCUMENT>0000851205-24-000077.txt : 20241030
<SEC-HEADER>0000851205-24-000077.hdr.sgml : 20241030
<ACCEPTANCE-DATETIME>20241030163312
ACCESSION NUMBER:		0000851205-24-000077
CONFORMED SUBMISSION TYPE:	8-K
PUBLIC DOCUMENT COUNT:		16
CONFORMED PERIOD OF REPORT:	20241030
ITEM INFORMATION:		Results of Operations and Financial Condition
ITEM INFORMATION:		Other Events
ITEM INFORMATION:		Financial Statements and Exhibits
FILED AS OF DATE:		20241030
DATE AS OF CHANGE:		20241030

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			COGNEX CORP
		CENTRAL INDEX KEY:			0000851205
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL INSTRUMENTS FOR MEASUREMENT, DISPLAY, AND CONTROL [3823]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		IRS NUMBER:				042713778
		STATE OF INCORPORATION:			MA
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		8-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-34218
		FILM NUMBER:		241410841

	BUSINESS ADDRESS:	
		STREET 1:		ONE VISION DR
		CITY:			NATICK
		STATE:			MA
		ZIP:			01760
		BUSINESS PHONE:		5086503000

	MAIL ADDRESS:	
		STREET 1:		ONE VISION DRIVE
		CITY:			NATICK
		STATE:			MA
		ZIP:			01760
</SEC-HEADER>
<DOCUMENT>
<TYPE>8-K
<SEQUENCE>1
<FILENAME>cgnx-20241030.htm
<DESCRIPTION>8-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:183cee4a-c964-4e00-8eb8-69f3b8a36a8c,g:e1770e5f-883d-4c13-b744-d2762e09692b,d:d4ccdfb445c343e19640df451414037d-->
<html xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns="http://www.w3.org/1999/xhtml" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>cgnx-20241030</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="c-1" name="dei:EntityCentralIndexKey" id="f-21">0000851205</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:AmendmentFlag" format="ixt:fixed-false" id="f-22">FALSE</ix:nonNumeric></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="cgnx-20241030.xsd"/></ix:references><ix:resources><xbrli:context id="c-1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-10-30</xbrli:startDate><xbrli:endDate>2024-10-30</xbrli:endDate></xbrli:period></xbrli:context></ix:resources></ix:header></div><div id="id4ccdfb445c343e19640df451414037d_1"></div><div style="min-height:54pt;width:100%"><div style="margin-bottom:0.08pt"><span><br/></span></div></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:120%">UNITED STATES</span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:120%">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Washington, D.C. 20549</span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">___________________________________</span></div><div style="margin-top:6pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:14pt;font-weight:700;line-height:120%">FORM <ix:nonNumeric contextRef="c-1" name="dei:DocumentType" id="f-1">8-K</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:700;line-height:120%">___________________________________</span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CURRENT REPORT</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%">Pursuant to Section 13 or 15(d)</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%">of the Securities Exchange Act of 1934</span></div><div style="text-align:center"><span><br/></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%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="f-2">October 30, 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:700;line-height:120%">Date of Report (date of earliest event reported)</span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">___________________________________</span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:16pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityRegistrantName" id="f-3">Cognex Corporation</ix:nonNumeric></span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(Exact name of registrant as specified in its charter)</span></div><div style="margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">___________________________________</span></div><div><span><br/></span></div><div style="margin-bottom:6pt"><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:32.233%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:32.233%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:32.234%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.92pt;padding-right:0.92pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:125%"><ix:nonNumeric contextRef="c-1" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="f-4">Massachusetts</ix:nonNumeric></span></div><div style="padding-left:0.92pt;padding-right:0.92pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(State or other jurisdiction of </span></div><div style="padding-left:0.92pt;padding-right:0.92pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">incorporation or organization)</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.95pt;padding-right:0.95pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:125%"><ix:nonNumeric contextRef="c-1" name="dei:EntityFileNumber" id="f-5">001-34218</ix:nonNumeric></span></div><div style="padding-left:0.95pt;padding-right:0.95pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(Commission File Number)</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.95pt;padding-right:0.95pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:125%"><ix:nonNumeric contextRef="c-1" name="dei:EntityTaxIdentificationNumber" id="f-6">04-2713778</ix:nonNumeric></span></div><div style="margin-bottom:0.08pt;padding-left:0.95pt;padding-right:0.95pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:125%">(I.R.S. Employer Identification Number)</span></div></td></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:3.92pt;padding-right:3.92pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-7">One Vision Drive</ix:nonNumeric></span></div><div style="margin-bottom:0.08pt;padding-left:3.92pt;padding-right:3.92pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-8">Natick</ix:nonNumeric>, <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-9">Massachusetts</ix:nonNumeric> <ix:nonNumeric contextRef="c-1" name="dei:EntityAddressPostalZipCode" id="f-10">01760-2059</ix:nonNumeric></span></div></td></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:4.37pt;padding-right:4.37pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(Address of principal executive offices and zip code)</span></div></td></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-bottom:0.08pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(<ix:nonNumeric contextRef="c-1" name="dei:CityAreaCode" id="f-11">508</ix:nonNumeric>) <ix:nonNumeric contextRef="c-1" name="dei:LocalPhoneNumber" id="f-12">650-3000</ix:nonNumeric></span></div></td></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:4.37pt;padding-right:4.37pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">(Registrant's telephone number, including area code)</span></div></td></tr></table></div><div style="margin-bottom:6pt;margin-top:2.7pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">___________________________________</span></div><div style="margin-top:10.8pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Check the appropriate box below if the Form 8-K filing is intended to simultaneously satisfy the filing obligation of the registrant under any of the following provisions:</span></div><div><span><br/></span></div><div style="margin-bottom:6pt"><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:4.852%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:92.948%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:1.4pt;padding-right:1.4pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:WrittenCommunications" format="ixt:fixed-false" id="f-13">&#9744;</ix:nonNumeric></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.9pt;padding-right:1.9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Written communications pursuant to Rule 425 under the Securities Act (17 CFR 230.425)</span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:1.4pt;padding-right:1.4pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:SolicitingMaterial" format="ixt:fixed-false" id="f-14">&#9744;</ix:nonNumeric></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.9pt;padding-right:1.9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 240.14a-12)</span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:1.4pt;padding-right:1.4pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:PreCommencementTenderOffer" format="ixt:fixed-false" id="f-15">&#9744;</ix:nonNumeric></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.9pt;padding-right:1.9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act (17 CFR 240.14d-2(b))</span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:1.4pt;padding-right:1.4pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:PreCommencementIssuerTenderOffer" format="ixt:fixed-false" id="f-16">&#9744;</ix:nonNumeric></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.9pt;padding-right:1.9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act (17 CFR 240.13e-4(c))</span></div></td></tr></table></div><div style="margin-bottom:6pt"><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:32.233%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.644%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:39.823%"/><td style="width:0.1%"/></tr><tr><td colspan="9" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:4.4pt;padding-right:4.4pt;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Securities registered pursuant to Section 12(b) of the Act:</span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:1.4pt;padding-right:1.4pt;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">Title of each class</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:1.4pt;padding-right:1.4pt;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">Trading Symbol</span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:1.4pt;padding-right:1.4pt;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">Name of each exchange on which registered</span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:125%"><ix:nonNumeric contextRef="c-1" name="dei:Security12bTitle" id="f-17">Common stock, par value $.002 per share</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:125%"><ix:nonNumeric contextRef="c-1" name="dei:TradingSymbol" id="f-18">CGNX</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:middle"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:125%"><ix:nonNumeric contextRef="c-1" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="f-19">The NASDAQ Stock Market LLC</ix:nonNumeric></span></td></tr></table></div><div style="margin-top:5.4pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 12b-2 of the Exchange Act.</span></div><div style="margin-top:5.4pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Emerging growth company&#160;&#160;&#160;&#160;<ix:nonNumeric contextRef="c-1" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox" id="f-20">&#9744;</ix:nonNumeric></span></div><div style="margin-top:5.4pt;text-align:justify"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;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. &#9744;</span></div><div style="margin-bottom:0.08pt"><span><br/></span></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><span><br/></span></div></div></div><div id="id4ccdfb445c343e19640df451414037d_7"></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%"><div style="margin-bottom:0.08pt"><span><br/></span></div></div><div style="-sec-extract:summary;margin-top:12pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Item 2.02 - Results of Operations and Financial Condition</span></div><div style="margin-top:6pt;text-align:justify"><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">O</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">n October 30, 2024, </span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation (the "</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Company</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">") issued a news release to report its financial results for the quarter ended September 29, 2024. The release is furnished as Exhibit 99.1 hereto. The information in Item 2.02 of this Current Report on Form 8-K, including the Exhibit attached hereto, shall not be deemed &#8220;filed&#8221; for purposes of Section 18 of the Securities Exchange Act of 1934, nor shall it be deemed to be incorporated by reference in any filing under the Securities Act of 1933 or the Securities Exchange Act of 1934, regardless of any general incorporation language in such filing.</span></div><div style="margin-bottom:0.08pt;text-align:justify"><span><br/></span></div><div style="margin-bottom:0.08pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Item 8.01 - Other Events</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 30, 2024, t</span><span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">he Company announced that its Board of Directors declared a quarterly cash dividend of $0.08 per share. The dividend is payable on November 29, 2024, to all shareholders of record at the close of business on November 14, 2024.</span></div><div style="margin-bottom:0.08pt"><span><br/></span></div><div style="margin-bottom:0.08pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:125%">Item 9.01 - Financial Statements and Exhibits</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(d) Exhibits</span></div><div><span><br/></span></div><div style="margin-bottom:6pt"><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:9.614%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.734%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:86.252%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 2.5pt;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:125%;text-decoration:underline">Exhibit No.</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt 2px 74.5pt;text-align:left;text-indent:-72.01pt;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:125%;text-decoration:underline">Description</span></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 2.5pt;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:125%">99.1</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:middle"><div style="margin-bottom:0.08pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:125%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:125%;text-decoration:underline" href="exhibit991-q32024earningsr.htm">News release, dated October 30, 2024, by Cognex Corporation with respect to financial results for the quarter ended September 29, 2024 (furnished herewith)</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.9pt;padding-right:1.85pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">104</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:0.9pt;padding-right:1.9pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cover Page Interactive Data File (the cover page XBRL tags are embedded within the Inline XBRL document)</span></div></td></tr></table></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><span><br/></span></div></div></div><div id="id4ccdfb445c343e19640df451414037d_10"></div><hr style="page-break-after:always"/><div style="min-height:54pt;width:100%"><div style="margin-bottom:0.08pt"><span><br/></span></div></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%">SIGNATURE</span></div><div style="text-align:center"><span><br/></span></div><div><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, as amended, the Registrant has duly caused this report to be signed on its behalf by the undersigned hereunto duly authorized on this 30th day of October, 2024.</span></div><div><span><br/></span></div><div style="margin-bottom:0.08pt"><span><br/></span></div><div style="margin-bottom:0.08pt"><span><br/></span></div><div style="margin-bottom:6pt;text-align:right"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:48.660%"><tr><td style="width:1.0%"/><td style="width:13.273%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:84.527%"/><td style="width:0.1%"/></tr><tr><td colspan="6" style="padding:2px 1pt 2px 2pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:11pt;font-weight:700;line-height:125%">COGNEX CORPORATION</span></td></tr><tr style="height:15pt"><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:top"><div style="padding-left:1pt;padding-right:1.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">By:</span></div></td><td colspan="3" style="padding:2px 1pt 2px 2pt;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:125%">/s/ Dennis Fehr</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:1pt;padding-right:1.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Name:</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt 2px 2pt;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:125%">Dennis Fehr</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:1pt;padding-right:1.75pt"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Title:</span></div></td><td colspan="3" style="padding:2px 1pt 2px 2pt;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:125%">Senior Vice President of Finance and Chief Financial Officer<br/></span></td></tr></table></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="margin-bottom:0.08pt"><span><br/></span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.1
<SEQUENCE>2
<FILENAME>exhibit991-q32024earningsr.htm
<DESCRIPTION>EX-99.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i0ebf52b5983d42cdb558f2e197e18a06_1"></div><div style="min-height:54pt;width:100%"><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Exhibit 99.1</font></div></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:16pt;font-weight:700;line-height:131%">Cognex Reports Third Quarter 2024 Results</font></div><div><font><br></font></div><div style="text-align:justify"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">October 30, 2024&#8213;NATICK, MA&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation (NASDAQ&#58; CGNX) today reported financial results for the third quarter of 2024. Table 1 below shows selected financial data for Q3-24 compared with Q3-23 and Q2-24</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">.</font></div><div><font><br></font></div><div style="text-align:justify"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8220;Cognex generated third quarter revenue and adjusted EBITDA margin in line with our guidance,&#34; said Robert J. Willett, CEO. &#34;Revenue grew year-on-year on both a reported basis and excluding Moritex, led by continued strength in our Logistics and Semiconductor end markets. However, conditions across our broader factory automation business remain soft, with a further step-down in Automotive.&#34;</font></div><div><font><br></font></div><div style="text-align:justify"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Mr. Willett continued, &#8220;We made good strides in innovation, rolling out additional out-of-the-box AI features that are enhancing our products. We also continue to see our Emerging Customer initiative ramp well and attract many new customers.&#34;</font></div><div><font><br></font></div><div style="text-align:justify"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Dennis Fehr, CFO, added, &#8220;In this prolonged soft macro environment, we tightly managed costs and working capital. Despite a ramp in strategic investments, we delivered a sequential decrease in operating expenses. Combined with working capital efficiencies, this led to our highest quarterly operating cash flow and free cash flow since Q4-2022.&#8221;</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:110%;text-decoration:underline">Table 1</font></div><div style="margin-bottom:7pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:110%">(Dollars in millions, except per share amounts)</font></div><div><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><td style="width:32.073%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.957%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.364%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.598%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.364%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.560%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.364%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.637%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.203%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.480%"></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:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Current Quarter<br>Q3-24</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Prior Year Quarter Q3-23</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%"><br></font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Y&#47;Y Change</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Prior<br>Quarter<br>Q2-24</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%"><br></font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%">Q&#47;Q<br>Change</font></td></tr><tr><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">Revenue</font></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$235</font></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$197</font></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">+19%</font></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$239</font></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">-2%</font></td></tr><tr style="height:6pt"><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:0 1pt"></td><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:0 1pt"></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:#f2f2f2;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">Operating Income</font></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$32</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$31</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">+3%</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$38</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">-18%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">% of Revenue</font></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">13.4%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">15.5%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">(209 bps)</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">16.1%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">(262 bps)</font></td></tr><tr style="height:6pt"><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:0 1pt"></td><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:0 1pt"></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:#f2f2f2;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">Adjusted EBITDA*</font></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$41</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$34</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">+20%</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$48</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">-13%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">% of Revenue</font></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">17.6%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">17.4%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">+19 bps</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">19.9%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:180%">(232 bps)</font></td></tr><tr style="height:6pt"><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:0 1pt"></td><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:0 1pt"></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:#f2f2f2;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">Net Income per Diluted Share</font></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$0.17</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$0.11</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">+57%</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$0.21</font></td><td colspan="3" style="background-color:#f2f2f2;padding:0 1pt"></td><td colspan="3" style="background-color:#f2f2f2;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">-18%</font></td></tr><tr style="height:6pt"><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:0 1pt"></td><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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">Adjusted EPS (Diluted)*</font></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$0.20</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$0.17</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">+19%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">$0.23</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">-13%</font></td></tr></table></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">Note&#58; Numbers shown may not foot due to rounding.</font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:112%">*Adjusted EBITDA and Adjusted EPS (Diluted) exclude Non-GAAP adjustments. A reconciliation from GAAP to Non-GAAP metrics is provided in this news release.</font></div><div style="text-align:center"><font><br></font></div><div style="text-align:center"><font><br></font></div><div id="i0ebf52b5983d42cdb558f2e197e18a06_4"></div><div style="margin-top:6pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Details of the Quarter</font></div><div style="padding-left:18pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Statement of Operations Highlights &#8211; Third Quarter of 2024</font></div><div style="padding-left:18pt;text-align:justify"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">As previously noted, results include four months of financials for Moritex, which was acquired by Cognex in October 2023, as we aligned Moritex's accounting close schedule with the Cognex close schedule in the quarter.</font></div><div style="text-align:justify"><font><br></font></div><div style="padding-left:18pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue grew by 19% from Q3-23. Excluding the 12 percentage point contribution to revenue growth by Moritex, revenue increased by 7%. The year-on-year increase in revenue excluding Moritex was driven by strong growth in our Logistics and Semiconductor businesses as well as the timing of Consumer Electronics revenue. Sequentially, revenue decreased by 2% from Q2-24, or 5% excluding Moritex, primarily due to the seasonality of Consumer Electronics revenue.</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div style="padding-left:18pt;text-align:justify"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Gross margin was 67.9% for Q3-24 compared to 72.4% for Q3-23 and 69.6% for Q2-24. We recorded $2 million in amortization of intangible assets and other acquisition charges in cost of revenue in Q3-24, primarily related to the Moritex acquisition.</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Adjusted gross margin was 68.7</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">%</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> for Q3-24 compare</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">d to 72.7% for Q3-23 and 70.3% for Q2-24. The year-on-year decline was primarily driven by an approximately 3 percentage point dilution effect from Moritex while negative mix and pricing contributed to the sequential decline.</font></div><div style="text-align:justify"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Operating expenses of $128 million increased by 14% from Q3-23 and were slightly down from Q2-24. We recorded $3 million in amortization of intangible assets, integration costs, and other acquisition charges in operating expenses in Q3-24, primarily related to the Moritex acquisition. Adjusted operating expenses of $125 million in Q3-24 increased by 10% from Q3-23 and were slightly down from Q2-24. The year-on-year increase was driven by expenses related to Moritex, our investment in the Emerging Customer initiative, and incentive compensation, partly offset by lower headcount excluding Moritex and the Emerging Customer initiative, as well as disciplined cost management.</font></div><div><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Net Income of $30 million increased by 56% from Q3-23 and declined by 18% from Q2-24. Adjusted Net Income of $34 million in Q3-24 increased by 19% from Q3-23 and declined by 13% from Q2-24. The year-on-year increase in Adjusted Net Income was primarily driven by the contribution from Moritex. </font></div><div><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The effective tax rate was 19% in Q3-24 and 30% in Q3-23. Excluding discrete tax items and the tax impact of non-GAAP adjustments, the adjusted effective tax rate was 18% in both periods.</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"> </font></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Balance Sheet and Cash Flow Highlights &#8211; September 29, 2024</font></div><div style="padding-left:18pt;text-align:justify"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">Cognex&#8217;s financial position as of September 29, 2024</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:112%"> </font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">continued to be strong, with $607 million in cash and investments and no debt as of September 29, 2024.</font></div><div><font><br></font></div><div style="padding-left:18pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">In Q3-24, Cognex generated $56 million of cash from operating activities and $52 million in free cash flow, a $15 million and $17 million improvement year-on-year, respectively.</font></div><div><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">The company spent $4 million to repurchase its common stock and paid $13 million in dividends to shareholders. Cognex intends to continue to repurchase shares of its common stock pursuant to its existing stock repurchase program, subject to market conditions and other relevant factors.</font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Financial Outlook &#8211; Fourth Quarter of 2024</font></div><div><font><br></font></div><div style="padding-left:18pt;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">Cognex expects revenue to be between $210 million and $230 million. This range represents a sequential decrease in revenue from Q3-24 to Q4-24 driven by Consumer Electronics seasonality and one fewer month of Moritex financials. Year-on-year, at the midpoint, this represents a low-double-digit increase on a reported basis, or a high-single-digit increase, excluding Moritex, driven by continued growth in Logistics and Semi. We expect the Moritex business to contribute 6 to 8 percent of revenue in Q4-24. </font></div><div style="padding-left:18pt"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted gross margin</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> is expected to be in the high 60 percent range. Mix as well as competitive pricing are expected to be sequential headwinds, partially offset by the favorable impact of one fewer month of Moritex financials.  </font></div><div><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted EBITDA margin</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> is expected to be between 14% and 17%. This represents a 3 percentage point increase year-on-year at the midpoint driven by expected continued tight management of operating expenses and positive operating leverage slightly offset by lower gross margin and investment in the Emerging Customer initiative.</font></div><div style="text-align:justify"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The adjusted effective tax rate</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> is expected to be 16%.</font></div><div style="text-align:justify"><font><br></font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">1</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex has provided the forward-looking non-GAAP measures of adjusted gross margin, adjusted EBITDA margin, and adjusted effective tax rate, but cannot, without unreasonable effort, forecast such items to present or provide a reconciliation to corresponding forecasted GAAP measures. These include special items such as restructuring charges, acquisition and integration charges, and amortization of acquisition-related intangible assets, all of which are subject to limitations in predictability of timing, ultimate outcome and numerous conditions outside of Cognex&#8217;s control. Additionally, these items are outside of Cognex&#8217;s normal business operations and not used by management to assess Cognex&#8217;s operating results. Cognex believes these limitations would result in a range of projected values so broad as to not be meaningful to investors. For these reasons, Cognex believes that the probable significance of such information is low. Information with respect to special items for certain historical periods is included in the section entitled &#8220;Reconciliation of Selected Items From GAAP to Non-GAAP&#8221;.</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:180%">Analyst Conference Call and Simultaneous Webcast</font></div><div style="text-align:justify"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Cognex will host a conference call on October 31, 2024 at 8&#58;30 a.m. Eastern Daylight Time (EDT). The telephone number is (877) 704-4573 (or (201) 389-0911 if outside the United States). </font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font><br></font></div><div style="padding-left:18pt;text-align:justify;text-indent:-18pt"><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">A real-time audio broadcast of the conference call or an archived recording, together with a slide presentation, will be accessible on the Events &#38; Presentations page of the Cognex Investor website&#58;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">www.cognex.com&#47;investor.</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">  </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i0ebf52b5983d42cdb558f2e197e18a06_7"></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:139%">COGNEX CORPORATION</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:139%">CONSOLIDATED BALANCE SHEETS</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">(in thousands)</font></div><div style="text-align:center"><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><td style="width:71.560%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.204%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.206%"></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:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">September 29, 2024</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2023</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(unaudited)</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">ASSETS</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current assets&#58;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">197,075</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">202,655&#160;</font></td><td style="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:top"><div style="padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current investments, amortized cost of $91,658 and $132,799 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023</font></div></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">90,803</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">129,392&#160;</font></td><td style="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:top"><div style="padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable, allowance for credit losses of $604 and $583 in 2024 and 2023, respectively</font></div></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">157,968</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">114,164&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2,117</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,402&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventories</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">155,278</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">162,285&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">68,841</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">68,099&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current assets</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">672,082</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">678,997&#160;</font></td><td style="border-top:1pt solid #000000;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:top"><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current investments, amortized cost of $318,268 and $250,790 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023</font></div></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">319,287</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">244,230&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant, and equipment, net</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">103,177</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">105,849&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">72,433</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">75,115&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">391,673</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">393,181&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets, net</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">102,550</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">112,952&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred income taxes</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">395,205</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">400,400&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">6,840</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,088&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total assets</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2,063,247</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,017,812&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current liabilities&#58;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">29,984</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">21,454&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">76,675</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">72,374&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued income taxes</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">24,226</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16,907&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue and customer deposits</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">30,045</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">31,525&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liabilities</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">9,806</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9,624&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current liabilities</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">170,736</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">151,884&#160;</font></td><td style="border-top:1pt solid #000000;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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current operating lease liabilities</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">67,375</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">68,977&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred income taxes</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">230,368</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">246,877&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserve for income taxes</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">26,491</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">26,685&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current accrued income taxes</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,338&#160;</font></td><td style="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:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other liabilities</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">1,251</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">299&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">496,221</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">513,060&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:12pt"><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:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commitments and contingencies (Note 10)</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shareholders&#8217; equity&#58;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Preferred stock, $.01 par value &#8211; Authorized&#58; 400 shares in 2024 and 2023, respectively&#59; no shares issued and outstanding</font></div></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="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"><div style="padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Common stock, $.002 par value &#8211; Authorized&#58; 300,000 shares in 2024 and 2023, respectively&#59; issued and outstanding&#58; 171,515 and 171,599 shares in 2024 and 2023, respectively</font></div></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">343</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">343&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additional paid-in capital</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">1,076,363</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,037,202&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Retained earnings</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">527,909</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">512,543&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accumulated other comprehensive loss, net of tax</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(37,589)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(45,336)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total shareholders&#8217; equity</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">1,567,026</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,504,752&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities and shareholders' equity</font></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2,063,247</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></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><td colspan="3" style="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"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2,017,812&#160;</font></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="text-align:center"><font><br></font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i0ebf52b5983d42cdb558f2e197e18a06_10"></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:139%">COGNEX CORPORATION</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:139%">CONSOLIDATED STATEMENT OF OPERATIONS</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:139%">(Unaudited)</font></div><div style="margin-bottom:5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:139%"> (In thousands, except per share amounts)</font></div><div><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><td style="width:51.068%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.417%"></td><td style="width:0.1%"></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 style="width:0.1%"></td><td style="width:0.477%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.417%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.342%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.417%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.342%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.420%"></td><td style="width:0.1%"></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="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Three-months Ended</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Nine-months Ended</font></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="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">September 29, 2024</font></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="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"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">October 1, 2023</font></td><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"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">September 29, 2024</font></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"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">October 1, 2023</font></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:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></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="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Revenue</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">234,742</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></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="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">197,241&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">684,831</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">640,877&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">75,343</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">54,467&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">216,896</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">174,680&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross margin</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">159,399</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">142,774&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">467,935</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">466,197&#160;</font></td><td style="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="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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">67.9</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">72.4&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">68.3</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">72.7&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">35,210</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">32,580&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">107,277</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">104,707&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 7.77pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">15.0</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">16.5&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">15.7</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">16.3&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">92,625</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">82,307&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">276,433</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">248,767&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 7.77pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">39.5</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">41.7&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">40.4</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">38.8&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (recovery) from fire</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,750)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(5,250)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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><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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating income</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">31,564</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">30,637&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">84,225</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">117,973&#160;</font></td><td style="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="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="padding:2px 1pt 2px 7.77pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">13.4</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">15.5&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">12.3</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">18.4&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">1,221</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(8,699)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">1,086</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(9,910)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Investment income</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">3,561</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,891&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">9,797</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,573&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other income (expense)</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">209</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">173&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">581</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">358&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income before income tax expense</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">36,555</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,002&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">95,689</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">120,994&#160;</font></td><td style="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="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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income tax expense</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">6,964</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,086&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">17,864</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,989&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">29,591</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">18,916&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">77,825</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">102,005&#160;</font></td><td style="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="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="padding:2px 1pt 2px 7.77pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of revenue</font></td><td colspan="2" style="border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">12.6</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></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="padding:0 1pt"></td><td colspan="2" style="border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">9.6&#160;</font></td><td style="border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">11.4</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">15.9&#160;</font></td><td style="border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</font></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:5pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income per weighted-average common and common-equivalent share&#58;</font></td><td colspan="3" style="padding:0 1pt"></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="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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Basic</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">0.17</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.11&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">0.45</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.59&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Diluted</font></td><td style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">0.17</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.11&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">0.45</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.59&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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:9pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Weighted-average common and common-equivalent shares outstanding&#58;</font></td><td colspan="3" style="padding:0 1pt"></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="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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Basic</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">171,519</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">172,169&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">171,588</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">172,408&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Diluted</font></td><td colspan="2" style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">172,753</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">173,354&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">172,733</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">173,659&#160;</font></td><td style="border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash dividends per common share</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">0.075</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.070&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">0.225</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">0.210&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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:14pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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:14pt"><td colspan="3" style="padding:0 1pt"><div style="margin-bottom:1.5pt;margin-top:2.65pt"><font style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;&#160;&#160;&#160;</font></div></td><td colspan="3" style="padding:0 1pt"></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="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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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:12pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1) Amounts include stock-based compensation expense, as follows&#58;</font></td><td colspan="3" style="padding:0 1pt"></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="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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cost of revenue</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">442</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">435&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">1,460</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,497&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research, development, and engineering</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">3,707</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,459&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">11,636</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,657&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general, and administrative</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">8,952</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,471&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">26,271</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,364&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total stock-based compensation expense</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">13,101</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="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="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">12,365&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">39,367</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">41,518&#160;</font></td><td style="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="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:8pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"></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="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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="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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></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></table></div><div><font><br></font></div><div><font><br></font></div><div style="text-align:center"><font><br></font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i0ebf52b5983d42cdb558f2e197e18a06_13"></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Non-GAAP Financial Measures</font></div><div style="padding-left:18pt"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This press release includes certain non-GAAP financial measures, including adjusted gross margin, adjusted operating expense, adjusted operating income, adjusted EBITDA, adjusted net income, adjusted earnings per share of common stock, diluted, adjusted effective tax rate, and free cash flow. Cognex defines its non-GAAP metrics as follows&#58;</font></div><div><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%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted gross margin</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#58; Gross margin adjusted for amortization of acquisition-related intangible assets, as well as, if applicable, restructuring charges, acquisition and integration costs and other one-time discrete events, such as </font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">loss or recovery related to a fire. </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%">&#8226;</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted operating expense</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#58; Operating expense adjusted for </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">amortization of acquisition-related intangible assets, as well as, if applicable, restructuring charges, acquisition and integration costs and other one-time discrete events, such as </font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">loss or recovery related to a fire. </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%">&#8226;</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted operating income</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#58; Operating income adjusted for </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">amortization of acquisition-related intangible assets, as well as, if applicable, restructuring charges, acquisition and integration costs and other one-time discrete events, such as </font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">loss or recovery related to a fire.</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%">&#8226;</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted EBITDA</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#58; </font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating income adjusted for </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">amortization of acquisition-related intangible assets and depreciation, as well as, if applicable, restructuring charges, acquisition and integration costs and other one-time discrete events, such as </font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">loss or recovery related to a fire.</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%">&#8226;</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted net income&#58; </font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net income adjusted for </font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">amortization of acquisition-related intangible assets, as well as, if applicable, restructuring charges, acquisition and integration costs and other one-time discrete events, such as </font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">loss or recovery related to a fire or a foreign currency (gain) loss on a forward contract to hedge the Moritex purchase price.</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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted earnings per share of common stock, diluted&#58;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Adjusted net income divided by diluted weighted average common and common-equivalent shares.</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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Adjusted effective tax rate&#58;</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"> </font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Effective tax rate adjusted for discrete tax items and the net impact of the other non-GAAP adjustments.</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%">&#8226;</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%;padding-left:14.5pt">Free cash flow&#58;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> Cash provided by operating activities less cash for capital expenditures.</font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Beginning in the fourth quarter of 2023, we updated the calculation of our non-GAAP measures to exclude acquisition and integration costs and amortization of acquisition-related intangible assets. These changes have been applied retrospectively to the third quarter of 2023 and the nine month period ending October 1, 2023. </font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex also uses results on a constant-currency basis as one measure to evaluate its performance and compares results between periods as if the exchange rates had remained constant period-over-period. </font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex believes these non-GAAP financial measures are helpful because they allow investors to more accurately compare results over multiple periods using the same methodology that management employs in its budgeting process, in its review of operating results, and for forecasting and planning for future periods. </font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex&#8217;s definitions may differ from the definitions used by other companies and therefore comparability may be limited. In addition, other companies may not publish these or similar metrics. Furthermore, these measures have certain limitations in that they do not include the impact of certain non-recurring expenses that are reflected in our consolidated statement of operations that are necessary to run our business. Thus, our non-GAAP financial measures should be considered in addition to, not as substitutes for, or in isolation from, measures prepared in accordance with GAAP.</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Please see the section &#8220;Reconciliation of Selected Items from GAAP to Non-GAAP&#8221; below for more detailed information regarding non-GAAP financial measures herein, including the items reflected in our adjusted financial metrics and a</font><font style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> description of these adjustments.</font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i0ebf52b5983d42cdb558f2e197e18a06_16"></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">COGNEX CORPORATION</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">RECONCILIATION OF SELECTED ITEMS FROM GAAP TO NON-GAAP</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">Dollars in thousands, except per share amounts (Unaudited)</font></div><div style="padding-right:-22.5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:75.367%"><tr><td style="width:1.0%"></td><td style="width:44.265%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.306%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.450%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td style="width:1.0%"></td><td style="width:9.306%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.450%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.306%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.450%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.306%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.450%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.311%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Three-months Ended</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Nine-months Ended</font></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"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">September 29, 2024</font></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">June 30, 2024</font></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"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">October 1, 2023</font></td><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"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">September 29, 2024</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">October 1, 2023</font></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Gross margin (GAAP)</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">159,399</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">166,599&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">142,774&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">467,935</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">466,197&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Acquisition and integration costs</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">281</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">233&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2,082</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Amortization of acquisition-related intangible assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1,640</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,388&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">550&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">4,457</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,849&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted gross margin</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">161,320</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">168,220&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">143,324&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">474,474</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">468,046&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">GAAP gross margin percent of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">67.9</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">69.6&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">72.4&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">68.3</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">72.7&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted gross margin percent of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">68.7</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">70.3&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">72.7&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">69.3</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">73.0&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr style="height:5pt"><td colspan="3" style="padding:0 1pt"><div><font><br></font></div></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Operating expense (GAAP)</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">127,835</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">128,142&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">112,137&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">383,710</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">348,224&#160;</font></td><td style="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><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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(Loss) recovery from fire</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2,750&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">5,250&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Acquisition and integration costs</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(962)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1,203)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1,241)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(3,468)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1,979)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Amortization of acquisition-related intangible assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(1,746)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1,339)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(193)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(4,469)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(579)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted operating expense</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">125,127</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">125,600&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">113,453&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">375,773</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">350,916&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><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="display:none"></td><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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Operating income (GAAP)</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">31,564</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">38,457&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">30,637&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">84,225</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">117,973&#160;</font></td><td style="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><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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Loss (recovery) from fire</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2,750)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(5,250)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Acquisition and integration costs</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1,243</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,436&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,241&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5,550</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,979&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Amortization of acquisition-related intangible assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3,386</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2,727&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">743&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">8,926</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2,428&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted operating income</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">36,193</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">42,620&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">29,871&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">98,701</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">117,130&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">GAAP operating income percent of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">13.4</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">16.1&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">15.5&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12.3</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">18.4&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted operating income percent of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">15.4</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">17.8&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">15.1&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">14.4</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">18.3&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Depreciation (adjusted for amounts included in Acquisition and integration costs)</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5,027</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">4,948&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">4,380&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">15,254</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">12,557&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted EBITDA</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">41,220</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">47,568&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">34,251&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">113,955</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">129,687&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted EBITDA margin percent of revenue</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">17.6</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">19.9&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">17.4&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">16.6</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">20.2&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr style="height:5pt"><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="display:none"></td><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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Net income (GAAP)</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">29,591</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">36,212&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">18,916&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">77,825</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">102,005&#160;</font></td><td style="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><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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Loss (recovery) from fire</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2,750)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(5,250)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Acquisition and integration costs</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1,243</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,436&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,241&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5,550</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,979&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Amortization of acquisition-related intangible assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3,386</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2,727&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">743&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">8,926</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2,428&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Foreign currency (gain) loss on forward contract</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">8,456&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">8,456&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Discrete tax (benefit) expense</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">889</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(463)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">4,035&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3,511</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">840&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Tax impact of reconciling items</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(1,176)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1,033)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2,037)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(3,563)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2,072)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted net income</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">33,933</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">38,879&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">28,604&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">92,249</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">108,386&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><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="display:none"></td><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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Earnings per share of common stock, diluted (GAAP)</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.17</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.21&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.11&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.45</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.59&#160;</font></td><td style="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><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="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Loss (recovery) from fire</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(0.02)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(0.03)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Acquisition and integration costs</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.01</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.01&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.01&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.03</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.01&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Amortization of acquisition-related intangible assets</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.02</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.02&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.05</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.01&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Foreign currency (gain) loss on forward contract</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.05&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&#8212;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.05&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Discrete tax (benefit) expense</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.01</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.02&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.02</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Tax impact of reconciling items</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(0.01)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(0.01)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(0.01)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(0.02)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(0.01)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted earnings per share of common stock, diluted</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.20</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.23&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.17&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">0.53</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.62&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:5pt"><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="display:none"></td><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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Effective tax rate (GAAP)</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">19.1</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">12.9&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">29.9&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">18.7</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">15.7&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Discrete tax benefit (expense)</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(2.4)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1.1&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(14.9)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(3.7)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(0.7)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Net impact of other reconciling items</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1.0</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1.0&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2.5&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1.3</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">0.7&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Adjusted effective tax rate</font></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">17.6</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">15.0&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">17.5&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">16.3</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">%</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">15.7&#160;</font></td><td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">%</font></td></tr><tr style="height:5pt"><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="display:none"></td><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:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cash provided by operating activities (GAAP)</font></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">56,271</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">27,763&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">41,023&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">97,677</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">98,425&#160;</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 19.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Capital expenditures</font></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(4,399)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(4,510)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(5,855)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(12,970)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(16,062)</font></td><td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Free cash flow</font></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">51,872</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">23,253&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">35,168&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">84,707</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="padding:0 1pt"></td><td style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</font></td><td style="border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">82,363&#160;</font></td><td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="height:36pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><div id="i0ebf52b5983d42cdb558f2e197e18a06_19"></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div><font><br></font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Description of adjustments&#58;</font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to reporting financial results in accordance with U.S. GAAP, the Company also provides various non-GAAP measures that incorporate adjustments for the impacts of special items. Adjustments incorporated in the preparation of these non-GAAP measures for the periods presented include the items described below&#58;</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Depreciation&#58;</font></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The company incurs expense related to its normal use of property, plant and equipment.</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Loss (recovery) from fire&#58;</font></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia. During the nine-month period ended October 1, 2023, the Company recorded recoveries related to the fire of $5,250,000, consisting of $2,500,000 in the second quarter of 2023 for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $2,750,000 in the third quarter of 2023 for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire. Management does not anticipate additional recoveries.</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Acquisition and integration costs&#58;</font></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">The Company has incurred charges related to the purchase and integration of acquired businesses. During the nine-month period ended September 29, 2024, these costs were primarily related to the ongoing integration of Moritex Corporation.</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Amortization of acquisition-related intangible assets&#58;</font></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">The Company excludes the amortization of acquired intangible assets from non-GAAP expense and income measures. These items are inconsistent in amount and frequency and are significantly impacted by the timing and size of acquisitions, and include the amortization of customer relationships, completed technologies, and trademarks that originated from prior acquisitions. The largest driver of intangible asset amortization was the acquisition of Moritex Corporation. </font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Discrete tax (benefit) expense&#58;</font></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:13.8pt">Items unrelated to current period ordinary income or (loss) that generally relate to changes in tax laws, adjustments to prior period&#8217;s actual liability determined upon filing tax returns, adjustments to previously recorded reserves for uncertain tax positions, and initially recording or fully reversing valuation allowances.</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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We estimate the tax effect of items identified in the reconciliation by applying the statutory tax rate to the pre-tax amount. </font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:112%">Certain statements made in this release, as well as oral statements made by the Company from time to time, constitute forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Securities Exchange Act of 1934, as amended. Readers can identify these forward-looking statements by our use of the words &#8220;expects,&#8221; &#8220;anticipates,&#8221; &#8220;estimates,&#8221; &#34;potential,&#34; &#8220;believes,&#8221; &#8220;projects,&#8221; &#8220;intends,&#8221; &#8220;plans,&#8221; &#8220;will,&#8221; &#8220;may,&#8221; &#8220;shall,&#8221; &#8220;could,&#8221; &#8220;should,&#8221; &#34;opportunity,&#34; &#34;goal&#34; and similar words and other statements of a similar sense. These statements are based on our current estimates and expectations as to prospective events and circumstances, which may or may not be in our control and as to which there can be no firm assurances given. These forward-looking statements, which include statements regarding business and market trends, future financial performance and financial targets, customer demand and order rates and timing of related revenue, future product or revenue mix, research and development activities, sales and marketing activities (including our &#34;Emerging Customer&#34; sales initiative), new product offerings, innovation and product development activities, customer acceptance of our products, capital expenditures, cost and working capital management activities, investments, liquidity, dividends and stock repurchases, strategic and growth plans and opportunities, acquisitions, and estimated tax benefits and expenses and other tax matters, involve known and unknown risks and uncertainties that could cause actual results to differ materially from those projected. Such risks and uncertainties include&#58; (1) the technological obsolescence of current products and the inability to develop new products, particularly in connection </font></div><div style="height:54pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div><hr style="page-break-after:always"><div style="min-height:54pt;width:100%"><div><font><br></font></div></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:112%">with emerging artificial intelligence technologies&#59; (2) the impact of competitive pressures, including the potential decrease in demand or prices for our products&#59; (3) the inability to attract and retain skilled employees and maintain our unique corporate culture&#59; (4) the failure to properly manage the distribution of products and services&#59; (5) economic, political, and other risks associated with international sales and operations, including the impact of trade disputes, the economic climate in China, and the wars involving Ukraine and Israel&#59; (6) the challenges in integrating and achieving expected results from acquired businesses, including our acquisition of Moritex Corporation&#59; (7) information security breaches and other cybersecurity risks&#59; (8) the failure to comply with laws or regulations relating to data privacy or data protection&#59; (9) the inability to protect our proprietary technology and intellectual property&#59; (10) the failure to manufacture and deliver products in a timely manner&#59; (11) the inability to obtain, or the delay in obtaining, components for our products at reasonable prices&#59; (12) the failure to effectively manage product transitions or accurately forecast customer demand&#59; (13) the inability to manage disruptions to our distribution centers or to our key suppliers&#59; (14) the inability to design and manufacture high-quality products&#59; (15) the loss of, or curtailment of or delays in purchases by, large customers in the logistics, consumer electronics, or automotive industries&#59; (16) potential impairment charges with respect to our investments or acquired intangible assets&#59; (17) exposure to additional tax liabilities, increases and fluctuations in our effective tax rate, and other tax matters&#59; (18) fluctuations in foreign currency exchange rates and the use of derivative instruments&#59; (19) unfavorable global economic conditions, including high interest rates and fluctuating inflation rates&#59; (20) business disruptions from natural or man-made disasters, such as fire, floods, or public health issues&#59; (21) exposure to potential liabilities, increased costs (including regulatory compliance costs), reputational harm, and other potential impacts associated with expectations relating to environmental, social, and governance considerations&#59; (22) stock price volatility&#59; and (23) our involvement in time-consuming and costly litigation or activist shareholder activities. The foregoing list should not be construed as exhaustive and we encourage readers to refer to the detailed discussion of risk factors included in Part I - Item 1A of the Company's Annual Report on Form 10-K for the fiscal year ended December 31, 2023, as updated by Part II - Item 1A of the Company's most recent Quarterly Report on Form 10-Q, as well as the other risks detailed in reports filed by the Company with the SEC. The Company cautions readers not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. The Company disclaims any obligation to subsequently revise forward-looking statements to reflect the occurrence of anticipated or unanticipated events or circumstances after the date such statements are made.</font></div><div style="text-align:justify"><font><br></font></div><div id="i0ebf52b5983d42cdb558f2e197e18a06_22"></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">About Cognex Corporation</font></div><div style="padding-left:18pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation (&#8220;the Company&#8221; or &#8220;Cognex&#8221;) invents and commercializes technologies that address some of the most critical manufacturing and distribution challenges. We are a leading global provider of machine vision products and solutions that improve efficiency and quality in high-growth-potential businesses across attractive industrial end markets. Our solutions blend physical products and software to capture and analyze visual information, allowing for the automation of manufacturing and distribution tasks for customers worldwide. Machine vision products are used to automate the manufacturing or distribution and tracking of discrete items, such as mobile phones, electric vehicle batteries and e-commerce packages, by locating, identifying, inspecting, and measuring them. Machine vision is important for applications in which human vision is inadequate to meet requirements for size, accuracy, or speed, or in instances where substantial cost savings or quality improvements are maintained.</font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex is the world's leader in the machine vision industry, having shipped more than 4.5 million image-based products, representing over $11 billion in cumulative revenue, since the company's founding in 1981. Headquartered in Natick, Massachusetts, USA, Cognex has offices and distributors located throughout the Americas, Europe, and Asia. For details, visit Cognex online at</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> www.cognex.com</font><font style="color:#222222;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</font></div><div style="text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Investor Contacts&#58;</font></div><div style="padding-right:19pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Nathan McCurren &#8211; Head of Investor Relations </font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Jordan Bertier &#8211; Sr. Manager, Investor Relations</font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation</font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ir&#64;cognex.com</font></div><div><font><br></font></div><div><font><br></font></div><div style="height:54pt;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>3
<FILENAME>cgnx-20241030.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:183cee4a-c964-4e00-8eb8-69f3b8a36a8c,g:e1770e5f-883d-4c13-b744-d2762e09692b-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cgnx="http://www.cognex.com/20241030" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.cognex.com/20241030">
  <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://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-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="cgnx-20241030_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="cgnx-20241030_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="cgnx-20241030_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="Cover" roleURI="http://www.cognex.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="DocumentandEntityInformation" roleURI="http://www.cognex.com/role/DocumentandEntityInformation">
        <link:definition>9952151 - Document - Document and Entity Information</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:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>4
<FILENAME>cgnx-20241030_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 2024 Workiva-->
<!--r:183cee4a-c964-4e00-8eb8-69f3b8a36a8c,g:e1770e5f-883d-4c13-b744-d2762e09692b-->
<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.cognex.com/role/DocumentandEntityInformation" xlink:type="simple" xlink:href="cgnx-20241030.xsd#DocumentandEntityInformation"/>
  <link:definitionLink xlink:role="http://www.cognex.com/role/DocumentandEntityInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationTable_77511f38-8e83-429a-bc2a-bccc02c81e8b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:to="loc_dei_DocumentInformationTable_77511f38-8e83-429a-bc2a-bccc02c81e8b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationDocumentAxis_72a1e602-7c37-416a-9073-67b63cb29d27" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationDocumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_dei_DocumentInformationTable_77511f38-8e83-429a-bc2a-bccc02c81e8b" xlink:to="loc_dei_DocumentInformationDocumentAxis_72a1e602-7c37-416a-9073-67b63cb29d27" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentDomain_72a1e602-7c37-416a-9073-67b63cb29d27_default" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_dei_DocumentInformationDocumentAxis_72a1e602-7c37-416a-9073-67b63cb29d27" xlink:to="loc_dei_DocumentDomain_72a1e602-7c37-416a-9073-67b63cb29d27_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentDomain_bf1b4269-0f08-4685-941e-790e0c0d210d" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_dei_DocumentInformationDocumentAxis_72a1e602-7c37-416a-9073-67b63cb29d27" xlink:to="loc_dei_DocumentDomain_bf1b4269-0f08-4685-941e-790e0c0d210d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_dbbb1df1-a4e8-4173-9370-e306f229ee5e" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:to="loc_dei_EntityCentralIndexKey_dbbb1df1-a4e8-4173-9370-e306f229ee5e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_2008540d-be63-4690-bef1-6b94f530cff4" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:to="loc_dei_AmendmentFlag_2008540d-be63-4690-bef1-6b94f530cff4" xlink:type="arc" order="1"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>5
<FILENAME>cgnx-20241030_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 2024 Workiva-->
<!--r:183cee4a-c964-4e00-8eb8-69f3b8a36a8c,g:e1770e5f-883d-4c13-b744-d2762e09692b-->
<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_dei_EntityIncorporationStateCountryCode_c62231b1-2254-4605-8195-7a97ef182dcd_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_dei_DocumentInformationDocumentAxis_8e17709c-69d1-4883-9a2e-1b762b8027b4_terseLabel_en-US" xlink:label="lab_dei_DocumentInformationDocumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Information, Document [Axis]</link:label>
    <link:label id="lab_dei_DocumentInformationDocumentAxis_label_en-US" xlink:label="lab_dei_DocumentInformationDocumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information, Document [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationDocumentAxis" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationDocumentAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentInformationDocumentAxis" xlink:to="lab_dei_DocumentInformationDocumentAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_SecurityExchangeName_74a11f37-c15d-4d79-a02f-4e6c2e914fb9_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:label id="lab_dei_SecurityExchangeName_label_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SecurityExchangeName" xlink:to="lab_dei_SecurityExchangeName" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentDomain_87ff24a7-6519-429b-a329-7eba26ee0d12_terseLabel_en-US" xlink:label="lab_dei_DocumentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document [Domain]</link:label>
    <link:label id="lab_dei_DocumentDomain_label_en-US" xlink:label="lab_dei_DocumentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentDomain" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentDomain" xlink:to="lab_dei_DocumentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressCityOrTown_44d11cf5-8fde-43ac-a75d-4d94ec0466b4_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_dei_SolicitingMaterial_8c1ecd2d-a3c2-49b2-bc9f-74e01de2e0d1_terseLabel_en-US" xlink:label="lab_dei_SolicitingMaterial" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Soliciting Material</link:label>
    <link:label id="lab_dei_SolicitingMaterial_label_en-US" xlink:label="lab_dei_SolicitingMaterial" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Soliciting Material</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SolicitingMaterial" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SolicitingMaterial" xlink:to="lab_dei_SolicitingMaterial" 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_dei_CityAreaCode_65c4e9af-cedc-40de-bd8b-c169109281fa_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_dei_AmendmentFlag_80f1c325-0f21-417d-8836-73697fadc3ee_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_dei_EntityTaxIdentificationNumber_0674da52-0fbd-42e4-a92a-077c9278027f_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_dei_TradingSymbol_fed9ea21-2ec4-4993-8606-791bd3d6849b_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:label id="lab_dei_TradingSymbol_label_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol" xlink:to="lab_dei_TradingSymbol" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityRegistrantName_47afe335-574a-4746-9db2-1d5eb825a6ab_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_dei_PreCommencementTenderOffer_8083b04e-350c-42a5-a1d5-8d91d0b24f78_terseLabel_en-US" xlink:label="lab_dei_PreCommencementTenderOffer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pre-commencement Tender Offer</link:label>
    <link:label id="lab_dei_PreCommencementTenderOffer_label_en-US" xlink:label="lab_dei_PreCommencementTenderOffer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pre-commencement Tender Offer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementTenderOffer" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_PreCommencementTenderOffer" xlink:to="lab_dei_PreCommencementTenderOffer" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_183f70e7-a6e7-4239-a597-db77541d2b7e_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_dei_EntityCentralIndexKey_0d8e3cb6-9c03-4983-a9bf-e11db9f28952_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_dei_EntityFileNumber_c1c7a66e-d31c-4ad7-a7c9-95fae7c8d044_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_dei_EntityAddressStateOrProvince_c21a8104-05f4-40cc-832a-67f38dac2147_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_dei_PreCommencementIssuerTenderOffer_b6ca402b-f414-4d37-ba97-49b32f9e57ff_terseLabel_en-US" xlink:label="lab_dei_PreCommencementIssuerTenderOffer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pre-commencement Issuer Tender Offer</link:label>
    <link:label id="lab_dei_PreCommencementIssuerTenderOffer_label_en-US" xlink:label="lab_dei_PreCommencementIssuerTenderOffer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pre-commencement Issuer Tender Offer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementIssuerTenderOffer" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_PreCommencementIssuerTenderOffer" xlink:to="lab_dei_PreCommencementIssuerTenderOffer" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentInformationLineItems_eaff6299-4753-4f61-ae34-f7465987a34f_terseLabel_en-US" xlink:label="lab_dei_DocumentInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Information [Line Items]</link:label>
    <link:label id="lab_dei_DocumentInformationLineItems_label_en-US" xlink:label="lab_dei_DocumentInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationLineItems" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentInformationLineItems" xlink:to="lab_dei_DocumentInformationLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentInformationTable_da7605a2-e534-43bb-9dc8-f396e850852d_terseLabel_en-US" xlink:label="lab_dei_DocumentInformationTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Information [Table]</link:label>
    <link:label id="lab_dei_DocumentInformationTable_label_en-US" xlink:label="lab_dei_DocumentInformationTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationTable" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentInformationTable" xlink:to="lab_dei_DocumentInformationTable" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine1_fcd7e176-95e6-4a07-b847-400581f93963_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_dei_EntityAddressPostalZipCode_42992878-2913-4095-978d-025e5d1092f8_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_dei_WrittenCommunications_b921ffca-b5f0-4298-a6d6-acdf0d3e9f0a_terseLabel_en-US" xlink:label="lab_dei_WrittenCommunications" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Written Communications</link:label>
    <link:label id="lab_dei_WrittenCommunications_label_en-US" xlink:label="lab_dei_WrittenCommunications" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Written Communications</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_WrittenCommunications" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_WrittenCommunications" xlink:to="lab_dei_WrittenCommunications" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_baa9b226-e727-49ce-b648-4acd6f0192d4_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_dei_Security12bTitle_bc0b476e-1e58-4126-b731-d3f18a2698f3_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:label id="lab_dei_Security12bTitle_label_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12bTitle" xlink:to="lab_dei_Security12bTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentPeriodEndDate_8582cadf-b2d8-447c-aac9-12b92a57eceb_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_dei_DocumentType_62760241-6919-4e7d-b37b-a0bac52dcf50_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:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>6
<FILENAME>cgnx-20241030_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 2024 Workiva-->
<!--r:183cee4a-c964-4e00-8eb8-69f3b8a36a8c,g:e1770e5f-883d-4c13-b744-d2762e09692b-->
<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.cognex.com/role/Cover" xlink:type="simple" xlink:href="cgnx-20241030.xsd#Cover"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/Cover" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_7c01a786-f5f2-4150-9a74-0d052c8c8e54" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityRegistrantName_7c01a786-f5f2-4150-9a74-0d052c8c8e54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_16a9faed-43b3-4a51-8f03-748b8a278731" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_DocumentType_16a9faed-43b3-4a51-8f03-748b8a278731" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_44f65c90-575e-40bc-a03a-6bcd63379815" 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_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_DocumentPeriodEndDate_44f65c90-575e-40bc-a03a-6bcd63379815" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_682e9e79-9f4c-43d9-bb08-6b95a465ec3b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityAddressStateOrProvince_682e9e79-9f4c-43d9-bb08-6b95a465ec3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_1a411043-331e-4c95-9805-c5d7b0080faf" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityAddressPostalZipCode_1a411043-331e-4c95-9805-c5d7b0080faf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_10f0eb14-b01e-4f3b-8dff-09f3dd733b7f" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityAddressAddressLine1_10f0eb14-b01e-4f3b-8dff-09f3dd733b7f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_c5342863-9ca8-44ba-a465-5100d76f9ce1" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityAddressCityOrTown_c5342863-9ca8-44ba-a465-5100d76f9ce1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_951300ba-b748-44c7-9c59-d0962457b183" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_CityAreaCode_951300ba-b748-44c7-9c59-d0962457b183" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_155b914d-3a7a-41b4-9122-2298c433f4f6" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_LocalPhoneNumber_155b914d-3a7a-41b4-9122-2298c433f4f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_d28160a2-d7cf-4b9f-a72d-72020bfb4f87" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityIncorporationStateCountryCode_d28160a2-d7cf-4b9f-a72d-72020bfb4f87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_1c77f791-be4c-4ddf-812f-d5148b037e69" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityFileNumber_1c77f791-be4c-4ddf-812f-d5148b037e69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_a437cdef-0d5c-4e66-bbd6-efefd825f65e" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityTaxIdentificationNumber_a437cdef-0d5c-4e66-bbd6-efefd825f65e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_WrittenCommunications_0ee408e4-27fd-407d-a098-1c877f41b8c2" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_WrittenCommunications_0ee408e4-27fd-407d-a098-1c877f41b8c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SolicitingMaterial_3ef7ccb1-d667-4403-8dc1-4293c19a357a" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_SolicitingMaterial_3ef7ccb1-d667-4403-8dc1-4293c19a357a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementTenderOffer_2b2de534-5139-40cc-8d1f-9f2d7e60b47c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_PreCommencementTenderOffer_2b2de534-5139-40cc-8d1f-9f2d7e60b47c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_PreCommencementIssuerTenderOffer_52d5d95d-bc13-4be8-9f40-a799b05af147" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_PreCommencementIssuerTenderOffer_52d5d95d-bc13-4be8-9f40-a799b05af147" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_924ebee6-f45c-426b-af46-a166e7185ef9" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_Security12bTitle_924ebee6-f45c-426b-af46-a166e7185ef9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_66cbda64-ff31-4b58-a3ca-2c686be1ee77" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_TradingSymbol_66cbda64-ff31-4b58-a3ca-2c686be1ee77" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_a80692a3-953a-464c-8478-65b1da10a44b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_SecurityExchangeName_a80692a3-953a-464c-8478-65b1da10a44b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_bf55bf16-a418-433e-a224-312ee2205e09" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_02175e4c-fe71-4572-b21f-64cf1fbb9a2f" xlink:to="loc_dei_EntityEmergingGrowthCompany_bf55bf16-a418-433e-a224-312ee2205e09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.cognex.com/role/DocumentandEntityInformation" xlink:type="simple" xlink:href="cgnx-20241030.xsd#DocumentandEntityInformation"/>
  <link:presentationLink xlink:role="http://www.cognex.com/role/DocumentandEntityInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_c48d3f7b-ac11-491f-a54c-6e3e4536a722" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationTable_77511f38-8e83-429a-bc2a-bccc02c81e8b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_c48d3f7b-ac11-491f-a54c-6e3e4536a722" xlink:to="loc_dei_DocumentInformationTable_77511f38-8e83-429a-bc2a-bccc02c81e8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationDocumentAxis_72a1e602-7c37-416a-9073-67b63cb29d27" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationDocumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_DocumentInformationTable_77511f38-8e83-429a-bc2a-bccc02c81e8b" xlink:to="loc_dei_DocumentInformationDocumentAxis_72a1e602-7c37-416a-9073-67b63cb29d27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentDomain_bf1b4269-0f08-4685-941e-790e0c0d210d" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_DocumentInformationDocumentAxis_72a1e602-7c37-416a-9073-67b63cb29d27" xlink:to="loc_dei_DocumentDomain_bf1b4269-0f08-4685-941e-790e0c0d210d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentInformationLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_DocumentInformationTable_77511f38-8e83-429a-bc2a-bccc02c81e8b" xlink:to="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_dbbb1df1-a4e8-4173-9370-e306f229ee5e" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:to="loc_dei_EntityCentralIndexKey_dbbb1df1-a4e8-4173-9370-e306f229ee5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_2008540d-be63-4690-bef1-6b94f530cff4" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_DocumentInformationLineItems_9662ecdf-c0bf-4553-af43-bcce045e1490" xlink:to="loc_dei_AmendmentFlag_2008540d-be63-4690-bef1-6b94f530cff4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<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.24.3</span><table class="report" border="0" cellspacing="2" id="idm45272463873456">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cover<br></strong></div></th>
<th class="th"><div>Oct. 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>
</tr>
<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">Cognex Corporation<span></span>
</td>
</tr>
<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_DocumentType', window );">Document Type</a></td>
<td class="text">8-K<span></span>
</td>
</tr>
<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">Oct. 30,  2024<span></span>
</td>
</tr>
<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>
</tr>
<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">01760-2059<span></span>
</td>
</tr>
<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">One Vision Drive<span></span>
</td>
</tr>
<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">Natick<span></span>
</td>
</tr>
<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">508<span></span>
</td>
</tr>
<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">650-3000<span></span>
</td>
</tr>
<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">MA<span></span>
</td>
</tr>
<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_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-34218<span></span>
</td>
</tr>
<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_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">04-2713778<span></span>
</td>
</tr>
<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_WrittenCommunications', window );">Written Communications</a></td>
<td class="text">false<span></span>
</td>
</tr>
<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_SolicitingMaterial', window );">Soliciting Material</a></td>
<td class="text">false<span></span>
</td>
</tr>
<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_PreCommencementTenderOffer', window );">Pre-commencement Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<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_PreCommencementIssuerTenderOffer', window );">Pre-commencement Issuer Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<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_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common stock, par value $.002 per share<span></span>
</td>
</tr>
<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_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CGNX<span></span>
</td>
</tr>
<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_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
</tr>
<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>
</tr>
</table>
<div style="display: none;">
<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_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_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_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_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_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_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_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_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_PreCommencementIssuerTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.</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 13e<br> -Subsection 4c<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_PreCommencementIssuerTenderOffer</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_PreCommencementTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.</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 14d<br> -Subsection 2b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_PreCommencementTenderOffer</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_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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(b) 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 b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_Security12bTitle</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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Exchange on which a security is registered.</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 d1-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_SecurityExchangeName</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:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance 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_SolicitingMaterial">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.</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 14a<br> -Subsection 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;">dei_SolicitingMaterial</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_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</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_TradingSymbol</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:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance 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_WrittenCommunications">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.</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 425<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ 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_WrittenCommunications</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>9
<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.24.3</span><table class="report" border="0" cellspacing="2" id="idm45272463913648">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Document and Entity Information<br></strong></div></th>
<th class="th"><div>Oct. 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_DocumentInformationLineItems', window );"><strong>Document Information [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_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000851205<span></span>
</td>
</tr>
<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_AmendmentFlag', window );">Amendment Flag</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_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_DocumentInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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;">dei_DocumentInformationLineItems</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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>10
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
M/\+M.U9EQ;%IKBP<PHKF"HZ]7+L'X/Y"*7OLN)-8>9 >_@M02P,$%     @
M)81>6>,W98L$ @  K 0  !@   !X;"]W;W)K<VAE971S+W-H965T,BYX;6R%
ME%%OFS 0Q[^*Y4E[F@(AI*LR0&K258NV:5&K;0_3'APX@E5C,]LIR;??V1#$
MI)3Q #[[_G__?!PDK=+/I@*PY%0+:5):6=NL@L#D%=3,S%0#$E=*I6MF,=2'
MP#0:6.%%M0BB,+P):L8ES1(_M]-9HHY6< D[3<RQKID^KT&H-J5S>IEXY(?*
MNHD@2QIV@">PWYN=QB@87 I>@S1<2:*A3.G=?+6.7;Y/^,&A-:,Q<2?9*_7L
M@FV1TM !@8#<.@>&CQ?8@!#."#'^])YTV-()Q^.+^X,_.YYESPQLE/C)"UNE
M]):2 DIV%/91M9^@/\_2^>5*&'\G;9>[B"G)C\:JNA<C0<UE]V2GO@XCP?PU
M0=0+(L_=;>0I[YEE6:)52[3+1C<W\$?U:H3CTKV4)ZMQE:/.9O<J/V*-+6&R
M(!^EY?9,MK)[V5BU)+"XB4L-\MYPW1E&KQA^R^V,+,)W) JC^%]Y@&P#8#0
M1MYO\3_ $17Y]06SR-9";7Y?0^PLX^N6KL]7IF$YI!0;V8!^ 9J]?3._"3],
M "\&X,64>]87<8/,F@G$+N!$/L/Y&N>T4XC7[7(>A<L)K'C BB?-[K"(A2_D
M@V"':S#3^I() ]<X@E'SN>_X*],'+@T14*)1.'N_I$1WWT876-7X?MPKB]WM
MAQ7^3D"[!%POE;*7P+7X\(/*_@)02P,$%     @ )81>69^@&_"Q @  X@P
M  T   !X;"]S='EL97,N>&ULW5=M:]LP$/XK0C]@;F)JXI$8MD!AL(U"\V%?
ME5AV!'KQ9+ES^NNGLVPG:75EW8>QS:')W3VZNT=W)YFN6W>2_.'(N2.]DKK=
MT*-SS?LD:0]'KEC[SC1<>Z0R5C'G55LG;6,Y*UMP4C)9WMQDB6)"TV*M.W6G
M7$L.IM-N0V]H4JPKH\^6E :#7\H4)X],;NB62;&W8EC+E)"G8%Z"X6"DL<1Y
M*GQ#%V!IGP*\"!JP'.,HH8T%8Q(RA._]N/P9,&FM5X64,\$E#89BW3#GN-5W
M7AD6#\87$!GEW:GQ#&O+3HOE+3T[##\^R=[8DMLYS8).IF(M>05TK*B/\.M,
MDP#HG%%>* 6KC68#A\EC%'S8 Y?R 5KXK;J*W5<D].)3"6T@L-5)](1&,80)
M"L2_C!9B7X2]_:VPI!&/QGWL_&[TH'_OC./WEE>B'_2^FO-CT1=X=-8T\O1!
MBEHK'O;^RPF+-9O\R-%8\>2SP:0<O(%;2AZY=>)P:?EA6;/CO9NFJ:]PSLM_
MD/.?K7/--;=,7I+VH_\W5_DMC)/Q]%P<T:L#.EL)7(0;^A7N5WGF0/:=D$[H
M43N*LN3ZQ3GUX1W;^PO\*KY?7_**==+M9G!#S_(77HI.Y?.J>ZC+N.HL?X;[
M:)'-M[#/)73)>UYN1]76^T$D7O!9QP<<GB-WPQ-',)^ Q1' L#P8 \PG>&%Y
M_J?]K-#]! SCMHHB*]1GA?H$KQBR'3Y8GKA/[I_X3O,\3;,,J^AV&V6PQ>J6
M9? 7CX9Q P\L#V1Z6ZWQ;N,3\OH<8#U];4*PG>*3B.T4KS4@\;J!1Y['NXWE
M 0^L"]CL0/YX'IBIN$^:0E<Q;M@)QI$\QQ"8Q?B,9AE2G0P^\?Y@IR1-\SR.
M !9GD*88 J<11S &P %#TG1X#SY['R73>RHY_U=3_ 102P,$%     @ )81>
M69>*NQS     $P(   L   !?<F5L<R\N<F5L<YV2N6[#, Q ?\70GC 'T"&(
M,V7Q%@3Y 5:B#]@2!8I%G;^OVJ5QD L9>3T\$MP>:4#M.*2VBZD8_1!2:5K5
MN %(MB6/:<Z10J[4+!XUA]) 1-MC0[!:+#Y +AEFM[UD%J=SI%>(7->=I3W;
M+T]!;X"O.DQQ0FE(2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%
MR=.B':5_'<?VD-/IKV,BM'I;Z/EQ:%0*CMQC)8QQ8K3^-8+)#^Q^ %!+ P04
M    "  EA%Y9N6,*$% !  #' @  #P   'AL+W=O<FMB;V]K+GAM;+5274_#
M, S\*U%^ .TFF,2T\C*^)B% @'C/6I=:2^+*<3?@U^.VJIB$A'CA*?'9NMR=
MLSH0[[9$._,>?$R%;43:99:ELH'@T@FU$+53$P<G6O);EEH&5Z4&0(+/YGF^
MR(+#:"]6$]<C9\<%"92"%!7L@5>$0_KN]Z798\(M>I2/P@YW#]8$C!CP$ZK"
MYM:DA@ZWQ/A)49Q_+IF\+^QL;+P""Y8_X.=>Y(O;I@$1MWUR*J2PBUP):^0D
MP\3 [U3C'G1XK#JA:_0"?.D$;IBZ%N-;3Z,NLB,;0P[3.8:XY+_$2'6-)5Q2
MV06(,N;(X'N!,378)FNB"U#8->V!>S_ZP*8:O8F*.DJ*EZ@-WE2#O/^3,HT8
M%RMS%47W939QI-+9(Y'S7T3.APRGX"JH,4)UKP\DQ76)Y2.;_AC,SD_/9N>Z
MK,[[M6(/\8Y<->UA^D,77U!+ P04    "  EA%Y9C?<L6K0   ") @  &@
M 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QSQ9)-"H,P$$:O$G* CMK215%7
MW;@M7B#H^(/1A,R4ZNUK=:&!+KJ1KL(W(>][,(D?J!6W9J"FM23&7@^4R(;9
MW@"H:+!7=#(6A_FF,JY7/$=7@U5%IVJ$* BNX/8,F<9[IL@GB[\0356U!=Y-
M\>QQX"]@>!G748/(4N3*U<B)A%%O8X+E"$\S68JL3*3+RE#"OX4B3R@Z4(AX
MTDB;S9J]^O.!]3R_Q:U]B>O0W\GEXP#>STO?4$L#!!0    ( "6$7EENIR2\
M'@$  %<$   3    6T-O;G1E;G1?5'EP97-=+GAM;,64ST[#, S&7Z7*=6HR
M=N" UEV *^S "X367:/FGV)O=&^/VVZ30*-B*A*71HWM[^?XB[)^.T; K'/6
M8R$:HOB@%)8-.(TR1/ <J4-RFO@W[5349:MWH%;+Y;TJ@R?PE%.O(3;K)ZCU
MWE+VW/$VFN +D<"BR!['Q)Y5"!VC-:4FCJN#K[Y1\A-!<N60@XV)N. $H:X2
M^LC/@%/=ZP%2,A5D6YWH13O.4IU52$<+**<EKO08ZMJ44(5R[[A$8DR@*VP
MR%DYBBZFR<03AO%[-YL_R$P!.7.;0D1V+,'MN+,E?74>60@2F>DC7H@L/?M\
MT+M=0?5+-H_W(Z1V\ /5L,R?\5>/+_HW]K'ZQS[>0VC_^JKWJW3:^#-?#>_)
MYA-02P$"% ,4    "  EA%Y9!T%-8H$   "Q    $               @ $
M    9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0    ( "6$7EDCV^3-[@   "L"
M   1              "  :\   !D;V-0<F]P<R]C;W)E+GAM;%!+ 0(4 Q0
M   ( "6$7EF97)PC$ 8  )PG   3              "  <P!  !X;"]T:&5M
M92]T:&5M93$N>&UL4$L! A0#%     @ )81>632L?=\!!   5 \  !@
M         ("!#0@  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM;%!+ 0(4 Q0
M   ( "6$7EGC-V6+! (  *P$   8              " @40,  !X;"]W;W)K
M<VAE971S+W-H965T,BYX;6Q02P$"% ,4    "  EA%Y9GZ ;\+$"  #B#
M#0              @ %^#@  >&PO<W1Y;&5S+GAM;%!+ 0(4 Q0    ( "6$
M7EF7BKL<P    !,"   +              "  5H1  !?<F5L<R\N<F5L<U!+
M 0(4 Q0    ( "6$7EFY8PH04 $  ,<"   /              "  4,2  !X
M;"]W;W)K8F]O:RYX;6Q02P$"% ,4    "  EA%Y9C?<L6K0   ") @  &@
M            @ ' $P  >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"
M% ,4    "  EA%Y9;J<DO!X!  !7!   $P              @ &L%   6T-O
F;G1E;G1?5'EP97-=+GAM;%!+!08     "@ * (0"  #[%0     !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<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>12
<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>14
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.3</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>1</ContextCount>
  <ElementCount>22</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>0</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>0</UnitCount>
  <MyReports>
    <Report instance="cgnx-20241030.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="cgnx-20241030.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>9952151 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cognex.com/role/DocumentandEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</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="8-K" isOnlyDei="true" original="cgnx-20241030.htm">cgnx-20241030.htm</File>
    <File>cgnx-20241030.xsd</File>
    <File>cgnx-20241030_def.xml</File>
    <File>cgnx-20241030_lab.xml</File>
    <File>cgnx-20241030_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="22">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>16
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "cgnx-20241030.htm": {
   "nsprefix": "cgnx",
   "nsuri": "http://www.cognex.com/20241030",
   "dts": {
    "inline": {
     "local": [
      "cgnx-20241030.htm"
     ]
    },
    "schema": {
     "local": [
      "cgnx-20241030.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/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd"
     ]
    },
    "definitionLink": {
     "local": [
      "cgnx-20241030_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "cgnx-20241030_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cgnx-20241030_pre.xml"
     ]
    }
   },
   "keyStandard": 22,
   "keyCustom": 0,
   "axisStandard": 0,
   "axisCustom": 0,
   "memberStandard": 0,
   "memberCustom": 0,
   "hidden": {
    "total": 2,
    "http://xbrl.sec.gov/dei/2024": 2
   },
   "contextCount": 1,
   "entityCount": 1,
   "segmentCount": 0,
   "elementCount": 27,
   "unitCount": 0,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/dei/2024": 22
   },
   "report": {
    "R1": {
     "role": "http://www.cognex.com/role/Cover",
     "longName": "0000001 - Document - Cover",
     "shortName": "Cover",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241030.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241030.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.cognex.com/role/DocumentandEntityInformation",
     "longName": "9952151 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "false",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": null,
     "uniqueAnchor": null
    }
   },
   "tag": {
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.cognex.com/role/DocumentandEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentDomain",
     "presentation": [
      "http://www.cognex.com/role/DocumentandEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document [Domain]",
        "label": "Document [Domain]",
        "documentation": "Type of the document as assigned by the filer, corresponding to SEC document naming convention standards."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationDocumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentInformationDocumentAxis",
     "presentation": [
      "http://www.cognex.com/role/DocumentandEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Information, Document [Axis]",
        "label": "Document Information, Document [Axis]",
        "documentation": "The axis of a table defines the relationship between the domain members or categories in the table and the line items or concepts that complete the table."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentInformationLineItems",
     "presentation": [
      "http://www.cognex.com/role/DocumentandEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Information [Line Items]",
        "label": "Document 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": []
    },
    "dei_DocumentInformationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentInformationTable",
     "presentation": [
      "http://www.cognex.com/role/DocumentandEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Information [Table]",
        "label": "Document Information [Table]",
        "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.cognex.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_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://www.cognex.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_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.cognex.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.cognex.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.cognex.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.cognex.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.cognex.com/role/DocumentandEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.cognex.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": [
      "r1"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.cognex.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_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.cognex.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_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.cognex.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": [
      "r1"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.cognex.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": [
      "r1"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "dei_PreCommencementIssuerTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementIssuerTenderOffer",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pre-commencement Issuer Tender Offer",
        "label": "Pre-commencement Issuer Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "dei_PreCommencementTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementTenderOffer",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pre-commencement Tender Offer",
        "label": "Pre-commencement Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_SolicitingMaterial": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SolicitingMaterial",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Soliciting Material",
        "label": "Soliciting Material",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "dei_WrittenCommunications": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "WrittenCommunications",
     "presentation": [
      "http://www.cognex.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Written Communications",
        "label": "Written Communications",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "13e",
   "Subsection": "4c"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14a",
   "Subsection": "12"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14d",
   "Subsection": "2b"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "425"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>17
<FILENAME>0000851205-24-000077-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000851205-24-000077-xbrl.zip
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
M\\5,_.XG?_.\=RW8P.:NF?5^ 5!+ P04    "  EA%Y90GK?[;@#  #>$@
M%0   &-G;G@M,C R-#$P,S!?9&5F+GAM;-U8;6_;-A#^[E^A:5]'BY2H%QJQ
MBRQI@: 9,&0MVF\&7TZR4+T$%!,[_WZ4;"5V[<1-K&[#OMC4\73WW#U'WMEG
M[U9EX=R#;O*ZFKIDC%T'*EFKO,JF[N=/'U#BOIN-1F>_(/3U]YMKY[*6=R54
MQKG0P TH9YF;A6,6X'RI];?\GCM_%MRDM2X1FG6O7=2W#SK/%L;QL4][M7Y7
M3T@22 #*D601110P1@F(!$4L#43"@X@G\K=L B2.,80I2I) (2I)@$1,*5)^
M'/F 6<1\T1DM\NK;I/T0O ''AE<UW>/471AS._&\Y7(Y7@E=C&N=>3[&@==K
MNQOUU9[^,NBT"6/,ZW8?59O\D*(U2[RO?US_)1=0<I17C>&5?')@W2OS^.(V
MFM!;;UK5)I\TW?O7M>2F(^AH",ZS&NT3ZM50*T+$1P$9KQKESD:.L\X<UU+7
M!=Q ZFR6GV^N]I'FE?%47GH;'8\7A47<63 /MS!UF[R\+:"7+32DSZ+O0VY!
MA2V<7UMKWLF8%A:(EG<"D)5"U9;X@!@/63\=\Z,MI"#E=X49$/&^[4'QUB7/
MATSPGND!T':&4 FE #TDU!V[6SA[D-\C;$W*.JM@9;]*KP/77ZV\4N\KDYN'
MJZJ]1[N3?QRKS*H5:F]8@@/<@7K1WA9&6PQYE;?2:_NX,=HB&@@MK Q4"M:7
M3.^TJ.6.4M%><?4C)P474'32N8)\WCO;\F&QPI6!LIFSR#8 J5(DL4@1#<,
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
MR6)D$.&FZ44* T81 R$A@B)2_XBBW=K?'J5QFF C'K35@Z6\:R/<ER_;=O@
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
M^2QFXQ-35/Q)&F=NFL6\"$T4^6@+E3]"EY;*A&8O(3R>E1B5/FP5=3,KRH[
M9L>WQ5D,-/=+P;W G_AI?L@'%#< Q?/=E [\HLY;E)]K) M27HR'MSSS\@&>
M^,!(1Y0EY> @/$\0F+Q&?"%=Q=W\*,"2B.+.:"Q53P7D1+HY9FL&"*-X D"=
MA0ZB^0$ED88!"LB+)TJF#^P2(0'O/QMN;O#DIUMFT=8!\!C80$F^MC*0'J,L
M\/(/>-E7'D&"U0(9_4=(Z@<:9/!U$HEKR7DI?\37!P(<:":$28=9P..QW'#"
MT"GY *0H)A14G&@KUI.;@3#70%Q@"U+!'X*$P.0P+$(0>3A$4'$ZP<N1H\<V
MN2G]QM-;>;*!AYP7R!4K-UT0.WA7.MBKL#@40$6Z'@?,R=PK;+T$N1-+,<'^
M3/$JYOP&ZD^+[,238X$ T0V?ZL.J4Y#YS<L[UW+'"S.+K@) [T\@AJZB<,AB
MAOBZHOF]Y7?^!.B)A@R9Z1]L@#*F,3;RR<2Y<FY]] &K8ZSYHRCS"F2[7 [/
MS[Q9AL@.HV?7X\>B+9W0]J1-KE'#Q"%Y3Y^X T;0RR!GU^_OWXDZKQ2X:#K&
M($O(#U(C3Y[U'.<=<?1.JV,[%CD#)CXS=>,=L7K]EMXW#.(/9[(5F?8/<,>P
M_14>^4S>;1-6W89PZDB39A-HTFIS2.'!<[ >4Z0@FGE^KI*X090?;EZBT9@7
MX,?N&"PN+Z]WYD9 &HT8S_MQ!4(Q/N"QPI+*BVLY]8.:HZX+.I<;(E$>$7C@
M,8_OOK%Z%^2WTD=@3E*A0DM'.6]RQ4@>V0!L'-$XX"# W@S]DI2Q\+4\/CZV
M70XV^&/"KTLM[(K#5-=M"+)J&2.'![IY;P/GC4Q>ZRY;)SSOC+%DS%A]= 5O
M?_YX_4]R=?OIM]M/E_<WMQ^W[BUQH'5^O+O]Y>;]Y?WU>_+3Y2^7'Z^NR=W?
MKJ_O[Z1;,.>1,VY2@QD(9F&IP>HF:TR%0U"P!K^ $M8:T&G"SHN_7'A^,@WH
MT[D?\LGY1Q=Y5XZ<GU;$'?A\XO&<9-NZ(-N\T5<^<_ZXS1\5S746GCE&V^Y6
M/];;1N6S=<,:9MO4.Z\:=OTSV]K38KL;#;MA,[5]]#,2&#\0_7-B6E.X?)R6
M3OL$P9*:Y"!XSUP!@=Q#6&QJM3MJV.T=M8<GE;,L1(L6NR_MED:VOQU8TGZ'
MF\'Q\NZNK Y5 \FO9>"K+(XQ\B@"L N.2QVA2_B???G 7-3C\\IK]F?F/]
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
M_A2XIL!2EB U(Y82.D'LI^/( RB,@$'&-"6 <+!348L2-ID&T1-VX>4$,<C
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
MWX[+MS["'0\S\1,P<X(_/= @$YP+[T:/Z!_LWAA6 9GM C+_8 1D+MAEJ5
MB%[1(X4+8$[I/@(*E,P\T#CKZ2?P"=J&3J?!4V$E)BE-,^Y3S>X.*6S/F+7P
M-Z'3ZB.7>]N+9</$8NB<:Q B3+#;!+2C@*//37.P YB&+N8C"P+\$Y16L/1!
MKM +LT0XW?Y$ !;^%$Y]Z@/<&7+L(XV]5A!%GQ$GI<$PBITC$2R0, \!W&%/
M'$"DZ5P6#B[\!&8_/WAY*8C!Z%L67RB=<*-?,/_L4^-ZQ:?77X1<*XW1*8_1
M)I\8;"]."%@P!:$]Y:[#FFW@&=$L+J*#..DC")Z$<-[2+U#MN6FB\7\:%\7/
M<]=\Z5'!!.4'5N=B&J$5!G2A\7\6;P]8X(-<6QIE&D?_634Q.C:AM_QZ +3V
M_,='/PB>_S:A3\]_2L9T^3TWR@)O^<UGO\)&HBFF/3(0W$^SG<%_1Q$-Q#^%
MR0B,0>,<M//P2 D//,!2O)>@J5'8LZ67T$X= )7#]R%'6Z$M9T 7\5R.-&%E
M(HEPO11A"H3W:V(/8C!XT_5C-YO #*A"-/(X]MTQL,D3:AW\ \,P \YD?#8,
MU$6!,)GYL.(#W OC=#? + F&="9H9XK054)&,&M8;*>:%HOY"S.ZM/&8C:A0
MA[-P%RX";6,P9M.8TP3H20P=EL)4H."'&/W& !JW^F=/4C21<<J978Z6-NXK
MY$8'&NHS>.;&/Z"H,%10%X<9FTT)X/4R9,RX>$0F_A>-JWX:PYYP& ^>!!$/
MM)=.8VLDH0$K[^?Y:6T!#[X"0 *GJFM8\0A_N<J7+VA-C"2L"$3U.XV$['&^
M.E!'&(" .?TPC![H++!4O%&UQ!F4J.NR*2<7WI<VBXM/\:45YU4T'K;@<P#Q
M<X07KTWF(;_R5!A&S TJ#6PQ\$@\Y"T"N@FE6LX__'YJS#GF(1@$8XH8&_DN
M?V$41X\86T'!() Z8U3A7RUY;P4/>>5;$>8,%2:LS+KX#KP-!J)8<Q0 9WT.
MHT<!T"P4?X_]Y'.2_Y(;?ARIW'KE0@;@@<(W-SZ+C"GPEN<CNG 2%@NC, \0
M1PDG.)2/*/?O,J"OJGER7N)N"SDSW@G39.9INC!EA&4 +'%9CM29!9XC5K
MYC'#PC#&U0E**=,7  )CQ;Z;@0Q#'QJ#E&&8J[5*2Z.<X#]>.</!*Q-D-;1X
M=IX5\@7Q.?1%ZAQ4;P#KY'12#E8 <?6!N,QWI:1[?I7\%*09USF8&4^$0)B+
M,V['%G8!4!3XW1A-!;K)A3%/2?AN[CJ5I4T^I_5NF3*!*7DV"0< -XT;C9_!
M%,">A9-I$#VQF;3%L$BNVT P_)EAD+4H*  J1@F63]01$PVI'Z"\%QH5U N0
MN9!C_+'G@Q#R!UD105E@(70"<2_YB/8[@K9_-/%=X)L(5H_<J)5$3,[321)A
M!AV6SU'#TSPAS;,A<]V1=_K@XFP1Q'.,\( 2KG*:H8'&GQ:+(&X@G!< R!58
MME2;,3[HZR27<3CF'Y]C@)K0J#=)3%F0;ZDK@.2B0<4*'WP6BL[#9]0=@\6'
M_Q)FBG"0N=#C\FU%X+R\(<35RW&J?$'.._B26P#\W428TT\$N=L=+\AS]VD
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
M "6$7EE">M_MN ,  -X2   5              "  5L2  !C9VYX+3(P,C0Q
M,#,P7V1E9BYX;6Q02P$"% ,4    "  EA%Y9I&_&=V@+  "G8@  %0
M        @ %&%@  8V=N>"TR,#(T,3 S,%]L86(N>&UL4$L! A0#%     @
M)81>615HS#JR!P  93L  !4              ( !X2$  &-G;G@M,C R-#$P
M,S!?<')E+GAM;%!+ 0(4 Q0    ( "6$7EGCRHRS$4@   BZ!  >
M      "  <8I  !E>&AI8FET.3DQ+7$S,C R-&5A<FYI;F=S<BYH=&U02P4&
2      8 !@"3 0  $W(

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>cgnx-20241030_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:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="cgnx-20241030.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2024-10-30</startDate>
            <endDate>2024-10-30</endDate>
        </period>
    </context>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-21">0000851205</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="c-1" id="f-22">false</dei:AmendmentFlag>
    <dei:DocumentType contextRef="c-1" id="f-1">8-K</dei:DocumentType>
    <dei:DocumentPeriodEndDate contextRef="c-1" id="f-2">2024-10-30</dei:DocumentPeriodEndDate>
    <dei:EntityRegistrantName contextRef="c-1" id="f-3">Cognex Corporation</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="c-1" id="f-4">MA</dei:EntityIncorporationStateCountryCode>
    <dei:EntityFileNumber contextRef="c-1" id="f-5">001-34218</dei:EntityFileNumber>
    <dei:EntityTaxIdentificationNumber contextRef="c-1" id="f-6">04-2713778</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-7">One Vision Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-8">Natick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-9">MA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="c-1" id="f-10">01760-2059</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="c-1" id="f-11">508</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="c-1" id="f-12">650-3000</dei:LocalPhoneNumber>
    <dei:WrittenCommunications contextRef="c-1" id="f-13">false</dei:WrittenCommunications>
    <dei:SolicitingMaterial contextRef="c-1" id="f-14">false</dei:SolicitingMaterial>
    <dei:PreCommencementTenderOffer contextRef="c-1" id="f-15">false</dei:PreCommencementTenderOffer>
    <dei:PreCommencementIssuerTenderOffer contextRef="c-1" id="f-16">false</dei:PreCommencementIssuerTenderOffer>
    <dei:Security12bTitle contextRef="c-1" id="f-17">Common stock, par value $.002 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="c-1" id="f-18">CGNX</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="c-1" id="f-19">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityEmergingGrowthCompany contextRef="c-1" id="f-20">false</dei:EntityEmergingGrowthCompany>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
