{"id":936689,"date":"2026-02-12T16:54:03","date_gmt":"2026-02-12T21:54:03","guid":{"rendered":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/"},"modified":"2026-02-12T16:54:03","modified_gmt":"2026-02-12T21:54:03","slug":"pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues","status":"publish","type":"post","link":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/","title":{"rendered":"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues"},"content":{"rendered":"<div class=\"mw_release\">\n<p align=\"justify\">SANTA CLARA, Calif., Feb.  12, 2026  (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and full year ended December 31, 2025.<\/p>\n<p>\n        <strong>Financial Highlights of Fourth\u00a0Quarter 2025<\/strong>\n      <\/p>\n<table align=\"center\" style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"max-width:2%;width:2%;min-width:2%;vertical-align: top\">\u25cf<\/td>\n<td style=\"max-width:98%;width:98%;min-width:98%;text-align: justify;vertical-align: middle;vertical-align: top\">\n            <strong>Record quarterly total revenues of $62.4 million, up 25% over last year<\/strong>\u2019<strong>s comparable quarter<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"vertical-align: top\">\n            <strong>GAAP gross margin of 73% and non-GAAP gross margin of 77%<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"vertical-align: top\">\n            <strong>GAAP operating margin of 6% and non-GAAP operating margin of 24%<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">\n            <strong>GAAP diluted loss per share (LPS) of $(0.00)<\/strong><br \/>\n            <strong>and non-GAAP diluted earnings per share (EPS)\u00a0of $0.30<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong>Financial Highlights of Full Year 2025<\/strong>\n      <\/p>\n<table align=\"center\" style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"max-width:2%;width:2%;min-width:2%;vertical-align: top\">\u25cf<\/td>\n<td style=\"max-width:98%;width:98%;min-width:98%;vertical-align: top\">\n            <strong>Record full year total revenues of $219.0 million, up 22% over last year<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"vertical-align: top\">\n            <strong>GAAP gross margin of 72% and non-GAAP gross margin of 76%<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"vertical-align: top\">\n            <strong>GAAP operating margin of 3% and non-GAAP operating margin of 21%<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"vertical-align: top\">\n            <strong>GAAP diluted LPS of $(0.02) and non-GAAP diluted EPS of $0.94<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"vertical-align: top\">\n            <strong>Ending backlog of $254\u00a0million<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: top\">\u25cf<\/td>\n<td style=\"vertical-align: top\">\n            <strong>Completed acquisition of SecureWise LLC, a widely-used, secure, remote connectivity solution<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<\/table>\n<p align=\"justify\">Total revenues for the fourth\u00a0quarter of\u00a02025\u00a0were $62.4\u00a0million, compared to $57.1 million for the\u00a0third quarter of 2025 and $50.1 million for the\u00a0fourth\u00a0quarter of 2024.\u00a0Total revenues for the full year\u00a02025\u00a0and 2024\u00a0were $219.0\u00a0million and $179.5 million, respectively.<\/p>\n<p align=\"justify\">GAAP gross margin for the fourth\u00a0quarter of 2025 was 73%, compared to 72% for the third\u00a0quarter of\u00a02025\u00a0and 68% for the\u00a0fourth\u00a0quarter of 2024.\u00a0GAAP gross margin for the full year\u00a02025\u00a0and 2024\u00a0was 72% and 70%, respectively.<\/p>\n<p align=\"justify\">Non-GAAP gross margin for the fourth\u00a0quarter of\u00a02025\u00a0was 77%, compared to 76% for the third quarter of 2025 and 72% for the fourth\u00a0quarter of 2024.\u00a0Non-GAAP gross margin for the full year\u00a02025\u00a0and 2024\u00a0was 76% and 74%, respectively.<\/p>\n<p align=\"justify\">GAAP operating margin for the fourth\u00a0quarter of 2025 was 6%, compared to 8% for the third quarter of 2025 and 1% for the fourth quarter of 2024.\u00a0GAAP operating margin for the full year\u00a02025\u00a0and 2024\u00a0was 3% and 1%, respectively.<\/p>\n<p align=\"justify\">Non-GAAP operating margin for the fourth\u00a0quarter of\u00a02025 was 24%, compared to 23% for the third quarter of 2025 and 18% for the fourth quarter of 2024.\u00a0Non-GAAP operating margin for the full year\u00a02025\u00a0and 2024\u00a0was 21% and 17%, respectively.<\/p>\n<p>\n        <strong><br \/>\n          <em>PDF Solutions<\/em><br \/>\n        <\/strong>\u00ae<strong><em> Reports\u00a02025\u00a0Fourth\u00a0Quarter and Full Year Financial Results, Announcing Record\u00a02025\u00a0Fourth Quarter and Record Full Year Total Revenue<\/em><\/strong><\/p>\n<p align=\"justify\">GAAP net loss\u00a0for the fourth\u00a0quarter of\u00a02025\u00a0was $48\u00a0thousand, or $(0.00) per diluted share, compared to net income of $1.3 million, or $0.03\u00a0per diluted share, for the third\u00a0quarter of 2025, and net income of $0.5 million, or $0.01\u00a0per diluted share, for the fourth\u00a0quarter of 2024. GAAP net loss\u00a0for the full year 2025\u00a0was $0.6\u00a0million, or $(0.02)\u00a0per diluted share, compared to net income of $4.1 million, or $0.10 per diluted share, for the full year 2024.<\/p>\n<p align=\"justify\">Non-GAAP net income for the\u00a0fourth\u00a0quarter of\u00a02025 was $12.0 million, or $0.30\u00a0per diluted share, compared to non-GAAP net income of $9.8 million, or $0.25 per diluted share, for the third\u00a0quarter of 2025, and non-GAAP net income of $9.9 million, or $0.25\u00a0per diluted share, for the fourth quarter of 2024.\u00a0Non-GAAP net income for the full year 2025\u00a0was $37.2 million, or $0.94 per diluted share, compared to net income of $32.6 million, or $0.84 per diluted share, for the full year 2024.<\/p>\n<p align=\"justify\">\n        <strong>Financial Outlook<\/strong>\n      <\/p>\n<p align=\"justify\">\u201cThe semiconductor industry&#8217;s complexity is outpacing its operational capabilities, underscoring the strategic relevance of the PDF Solutions Platform,\u201d said Dr. John Kibarian, PDF Solutions CEO and President. He continued, \u201cThe industry saw big changes in 2025, with the adoption of 3D architecture, global production, and faster development cycles. To help the industry address these challenges, PDF Solutions further solidified its transformation from an analytics provider to an execution platform spanning the semiconductor ecosystem, specifically through the acquisition of secureWISE and the license of the Tiber AI Studio code, contract bookings that included Sapience Manufacturing Hub Enterprise and Exensio Enterprise, announcing Exensio Scalable Analytics, and deployment of eProbe into manufacturing. Continuing the record revenues PDF Solutions achieved in 2025, we expect 2026 revenues to grow consistent with our 20% long-term revenue growth target.\u201d<\/p>\n<p align=\"justify\">\n        <strong><br \/>\n          <em>PDF Solutions<\/em><br \/>\n        <\/strong>\u00ae<strong><em> Reports\u00a02025\u00a0Fourth\u00a0Quarter and Full Year Financial Results, Announcing Record\u00a02025\u00a0Fourth Quarter and Record Full Year Total Revenue<\/em><\/strong><\/p>\n<p align=\"justify\">\n        <strong>Conference Call<\/strong>\n      <\/p>\n<p align=\"justify\">As previously announced, PDF Solutions will discuss these results on a live conference call beginning at 2:00 p.m. Pacific Time \/ 5:00 p.m. Eastern Time today. To\u00a0participate on\u00a0the live call, analysts and investors should pre-register at:\u00a0https:\/\/register-conf.media-server.com\/register\/BI608c63719b664d5b89046a0d66d19cdf. Registrants will receive dial-in information and a unique passcode to access the call. We encourage participants to dial into the call ten minutes ahead of the scheduled time. The teleconference will also be webcast simultaneously on the Company\u2019s website at https:\/\/ir.pdf.com\/webcasts. A replay of the conference call webcast will be available after the call on the Company\u2019s investor relations website. A copy of this press release, including the disclosure and reconciliation of certain non-GAAP financial measures to the comparable GAAP measures, which non-GAAP measures may be used periodically by PDF Solutions\u2019 management when discussing financial results with investors and analysts, will also be available on PDF Solutions\u2019 website at http:\/\/www.pdf.com\/press-releases on and following the date of this release.<\/p>\n<p align=\"justify\">\n        <strong>Fourth\u00a0Quarter and Full Year\u00a02025\u00a0Financial Commentary Available Online<\/strong>\n      <\/p>\n<p align=\"justify\">A Management Report reviewing the Company\u2019s fourth\u00a0quarter and full year\u00a02025 financial results will be furnished to the Securities and Exchange Commission on Form 8-K and published on the Company\u2019s website at http:\/\/ir.pdf.com\/financial-reports. Analysts and investors are encouraged to review this commentary prior to participating in the conference call.<\/p>\n<p align=\"justify\">\n        <strong>Information Regarding Use of Non-GAAP Financial Measures<\/strong>\n      <\/p>\n<p align=\"justify\">In addition to providing results that are determined in accordance with accounting principles generally accepted in the United States of America (\u201cGAAP\u201d), PDF Solutions also provides certain non-GAAP financial measures. Non-GAAP gross profit and margin exclude stock-based compensation expense and the amortization of acquired technology under costs of revenues. Non-GAAP net income excludes stock-based compensation expense, amortization of acquired intangible assets, amortization of debt issuance costs and the effects of certain non-recurring items, such as expenses for certain legal proceedings, acquisition-related and integration costs, loss on damaged equipment in-transit, recovery from previously written-off property and equipment, and their related income tax effects, as applicable, as well as adjustments for the valuation allowance for deferred tax assets and reconciling items. Non-GAAP financial measures are used by management internally to measure the Company\u2019s profitability and performance. PDF Solutions\u2019 management believes that these non-GAAP measures provide useful supplemental information to investors regarding the Company\u2019s ongoing operations in light of the fact that none of these categories of expense and income has a current effect on the future uses of cash (with the exception of expenses related to certain legal proceedings and acquisition-related and integration costs) nor do they impact the generation of current or future revenues. These non-GAAP results should not be considered an alternative to, or a substitute for, GAAP financial information, and may differ from similarly titled non-GAAP measures used by other companies. In particular, these non-GAAP financial measures are not a substitute for GAAP measures of income or loss as a measure of performance, or to cash flows from operating, investing and financing activities as a measure of liquidity. Since management uses these non-GAAP financial measures internally to measure profitability and performance, PDF Solutions has included these non-GAAP measures to give investors an opportunity to see the Company\u2019s financial results as viewed by management. A reconciliation of the comparable GAAP financial measures to the non-GAAP financial measures is provided at the end of the Company\u2019s unaudited condensed consolidated financial statements presented below.<\/p>\n<p align=\"justify\">\n        <strong>Revenue Presentation<\/strong>\n      <\/p>\n<p align=\"justify\">In connection with the results announced today, the Company also announced that it has updated the presentation of its revenue. As a result of organic and inorganic expansion over the years, PDF Solutions\u2019 business has evolved to include revenue from a broader portfolio of products and services. As a result, beginning with these results, the Company\u2019s categories of revenue are \u201cPlatform\u201d and \u201cVolume-based.\u201d<\/p>\n<p align=\"justify\">Most recently through the Company&#8217;s results for the third quarter of 2025, the Company presented revenue in two categories: Analytics and Integrated Yield Ramp. Analytics was revenue from licenses and services for on-premise software, software-as-a-service (\u201cSaaS\u201d), licenses and purchase contracts for DirectScan\u2122 systems, and Characterization Vehicle\u00ae systems that did not include performance incentives based on customers\u2019 yield achievement. Integrated Yield Ramp was revenue from all fees from the Company\u2019s contracts that included any performance incentives based on customers\u2019 yield achievement.<\/p>\n<p align=\"justify\">The Company\u2019s current category of Platform revenue is revenue from licenses for software (other than Cimetrix\u00ae runtime licenses) and related software maintenance and technical support services; SaaS; engineering services; fixed fees associated with CV\u00ae systems; and licenses and purchase contracts for DirectScan systems. The current category of Volume-based revenue is revenue from Cimetrix runtime licenses, secureWISE\u00ae data, and Gainshare.<\/p>\n<p>\n        <strong><br \/>\n          <em>PDF Solutions<\/em><br \/>\n        <\/strong>\u00ae<strong><em> Reports\u00a02025\u00a0Fourth\u00a0Quarter and Full Year Financial Results, Announcing Record\u00a02025\u00a0Fourth Quarter and Record Full Year Total Revenue<\/em><\/strong><\/p>\n<p align=\"justify\">\n        <strong>About PDF Solutions<\/strong>\n      <\/p>\n<p align=\"justify\">PDF Solutions (Nasdaq: PDFS) provides comprehensive data solutions designed to empower organizations across the semiconductor and electronics industry ecosystems to improve the yield and quality of their products and operational efficiency for increased profitability. The Company\u2019s products and services are used by Fortune 500 companies across the semiconductor ecosystem to achieve smart manufacturing goals by connecting and controlling equipment, collecting data generated during manufacturing and test operations, and performing advanced analytics and machine learning to enable profitable, high-volume manufacturing.<\/p>\n<p align=\"justify\">Founded in 1991, PDF Solutions is headquartered in Santa Clara, California, with operations across North America, Europe, and Asia. The Company (directly or through one or more subsidiaries) is an active member of SEMI, INEMI, TPCA, IPC, the OPC Foundation, and DMDII. For the latest news and information about PDF Solutions or to find office locations, visit\u00a0https:\/\/www.pdf.com\/.<\/p>\n<p align=\"justify\">\n        <em>Characterization Vehicle, Cimetrix, CV, DirectScan, eProbe, PDF Solutions, the PDF Solutions logo, and secureWISE\u00a0are trademarks or registered trademarks of PDF Solutions, Inc. or its subsidiaries.<\/em>\n      <\/p>\n<p align=\"justify\">\n        <strong>Forward-Looking Statements<\/strong>\n      <\/p>\n<p align=\"justify\">This press release and the planned conference call include forward-looking statements regarding the Company\u2019s future expected business performance and financial results, including expectations about total revenue growth for 2026, portfolio strength and momentum and other statements identified by words such as \u201ccould,\u201d \u201cexpects,\u201d \u201cintends,\u201d \u201cmay,\u201d \u201cplans,\u201d \u201cpotential,\u201d \u201cshould,\u201d \u201cwill,\u201d \u201cwould,\u201d or similar expressions and the negatives of those terms, that are subject to future events and circumstances. Other than statements of historical fact, all statements contained in this press release and the planned conference call are forward-looking statements within the meaning of the \u201csafe harbor\u201d provisions of the Private Securities Litigation Reform Act of 1995. Actual results could differ materially from those expressed in these forward-looking statements. Risks and uncertainties that could cause results to differ materially include risks associated with: the effectiveness of the Company\u2019s business and technology strategies; current semiconductor industry trends and competition; rates of adoption of the Company\u2019s solutions by new and existing customers; project milestones or delays and performance criteria achieved; cost and schedule of new product development and investments in research and development; the continuing impact of macroeconomic conditions, including inflation, changing interest rates and tariffs, the evolving trade regulatory environment and geopolitical tensions, government shutdowns, and other trends impacting the semiconductor industry, the Company\u2019s customers, operations, and supply and demand for its products; supply chain disruptions; changes in laws and regulations, including recent tax and data privacy laws and regulations, or the interpretation or enforcement thereof; the success of the Company\u2019s strategic growth opportunities and partnerships; recent and future acquisitions, strategic alliances and relationships and the Company\u2019s ability to successfully integrate acquired businesses and technologies; whether the Company can successfully convert backlog into revenue; customers\u2019 production volumes under contracts that provide Gainshare; the sufficiency of the Company\u2019s cash resources and anticipated funds from operations; the Company\u2019s ability to obtain additional financing if needed and its ability to use support and updates for certain open-source software; and other risks and uncertainties discussed in PDF Solutions\u2019 periodic public filings with the Securities and Exchange Commission, including, without limitation, its Annual Report on Form 10-K for the year ended December 31, 2024, Quarterly Reports on Form 10-Q, and Current Reports on Form 8-K and any amendments to such reports. All forward-looking statements made in this press release and the conference call are made as of the date hereof, and PDF Solutions does not assume any obligation to update such statements nor the reasons why actual results could differ materially from those projected in such statements. The Company has not filed its Annual Report on Form 10-K for the year ended December 31, 2025. As a result, all financial results described in this earnings release should be considered preliminary, and are subject to change to reflect any necessary adjustments or changes in accounting estimates, that are identified prior to the time the Company files its Annual Report on Form 10-K.<\/p>\n<p>\n        <strong><br \/>\n          <em>PDF Solutions<\/em><br \/>\n        <\/strong>\u00ae<strong><em> Reports 2025 Fourth Quarter and Full Year Financial Results, Announcing Record 2025 Fourth Quarter and Record Full Year Total Revenue<\/em><\/strong><\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"9\" style=\"vertical-align: bottom\">\n            <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n            <br \/>\n            <strong>CONDENSED CONSOLIDATED BALANCE SHEETS (UNAUDITED)<\/strong><br \/>\n            <br \/>\n            <strong>(In thousands)<\/strong><br \/>\n            <strong><br \/>\n              <br \/>\n            <\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:72%;width:72%;min-width:72%;vertical-align: bottom\">\n            <strong>ASSETS<\/strong>\n          <\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Current assets:<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Cash and cash equivalents<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">42,220<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">90,594<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Short-term investments<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">24,291<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Accounts receivable, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">82,938<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">73,649<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Prepaid expenses and other current assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">38,735<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">17,445<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">\n            <strong>Total current assets<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">163,893<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">205,979<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Property and equipment, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">81,609<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">48,465<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Operating lease right-of-use assets, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">4,778<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">4,029<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Goodwill<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">95,005<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">14,953<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Intangible assets, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">52,194<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">12,307<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Deferred tax assets, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">69<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">43<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Other non-current assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">21,149<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">29,513<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Total assets<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">418,697<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">315,289<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>LIABILITIES AND STOCKHOLDERS\u2019 EQUITY<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Current liabilities:<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Accounts payable<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">17,076<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">8,255<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Accrued compensation and related benefits<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">22,437<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">16,855<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Accrued and other current liabilities<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">8,719<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">8,752<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Operating lease liabilities \u2012 current portion<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,982<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,675<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Deferred revenues \u2012 current portion<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">19,441<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">25,005<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Current portion of long-term debt, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">2,236<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">\n            <strong>Total current liabilities<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">71,891<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">60,542<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Long-term income taxes<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">4,273<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">2,915<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Operating lease liabilities \u2013 non-current portion<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">3,838<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">3,504<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Long-term debt, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">64,763<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Other non-current liabilities<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">2,910<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">2,291<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Total liabilities<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">147,675<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">69,252<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Stockholders\u2019 equity:<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Common stock and additional paid-in capital<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">533,509<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">502,908<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Treasury stock, at cost<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(165,808<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(159,352<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Accumulated deficit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(94,628<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(93,988<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Accumulated other comprehensive loss<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,051<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(3,531<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">\n            <strong>Total stockholders\u2019 equity<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">271,022<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">246,037<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Total liabilities and stockholders\u2019 equity<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">418,697<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">315,289<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<td>\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong><br \/>\n          <em>PDF Solutions<\/em><br \/>\n        <\/strong>\u00ae<strong><em> Reports 2025 Fourth Quarter and Full Year Financial Results, Announcing Record 2025 Fourth Quarter and Record Full Year Total Revenue<\/em><\/strong><\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"21\" style=\"vertical-align: bottom\">\n            <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n            <br \/>\n            <strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)<\/strong><br \/>\n            <br \/>\n            <strong>(In thousands, except per share amounts)<\/strong><br \/>\n            <strong><br \/>\n              <br \/>\n            <\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Twelve Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>September 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025 (1)<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025 (1)<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025 (1)<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:30%;width:30%;min-width:30%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Revenues (2):<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Platform<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">52,503<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">48,001<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">43,807<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">181,025<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">157,166<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Volume-based<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">9,900<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">9,114<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">6,278<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">37,999<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">22,299<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Total revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">62,403<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">57,115<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">50,085<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">219,024<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">179,465<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Costs and Expenses:<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Costs of revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">16,942<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">15,840<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">15,901<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">60,623<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">54,144<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Research and development<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">19,258<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">15,435<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">14,417<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">64,234<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">53,566<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Selling, general, and administrative<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">21,676<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">19,944<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">19,073<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">84,736<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">69,924<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Amortization of acquired intangible assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1,069<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1,069<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">182<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">3,584<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">896<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Income from operations<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">3,458<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">4,827<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">512<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">5,847<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">935<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Interest expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(1,164<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(1,238<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">(3,955<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Interest income and other, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">345<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(102<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">962<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1,309<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">5,644<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Income before income tax expense<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">2,639<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">3,487<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,474<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">3,201<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">6,579<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Income tax expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,687<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,193<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(935<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(3,841<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,522<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Net income (loss)<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(48<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1,294<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">539<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(640<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">4,057<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Net income (loss) per share:<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Basic<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(0.00<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.03<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.01<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(0.02<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.11<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Diluted<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(0.00<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.03<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.01<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(0.02<\/td>\n<td style=\"vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.10<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <strong>Weighted average common shares used to calculate net income (loss) per share:<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Basic<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,524<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,500<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">38,783<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,317<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">38,602<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Diluted<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,524<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,619<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,104<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,317<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,047<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"2\" style=\"max-width:3%;width:3%;min-width:3%;padding-right: 0;text-align: left;vertical-align: middle;vertical-align: top\">(1)<\/td>\n<td style=\"max-width:97%;width:97%;min-width:97%;vertical-align: top\">Includes revenue from SecureWise LLC, a wholly owned subsidiary the Company\u00a0acquired in March 2025.<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"2\" style=\"max-width:3%;width:3%;min-width:3%;padding-right: 0;text-align: left;vertical-align: middle;vertical-align: top\">(2)<\/td>\n<td style=\"max-width:97%;width:97%;min-width:97%;text-align: justify;vertical-align: middle;vertical-align: top\">Beginning with this Form 8-K, the Company updated its presentation of revenue categories. The Company now presents revenue in the following categories: Platform and Volume-based. Platform revenue is derived from the following primary offerings: licenses for software (other than Cimetrix runtime licenses) and related software maintenance and technical support services; SaaS; engineering services; fixed fees associated with CV systems; and licenses and purchase contracts for DirectScan systems. Volume-based revenue is derived from Cimetrix runtime licenses, secureWISE data, and Gainshare. Prior periods Condensed Consolidated Statements of Operations have been reclassified to conform to the new revenue presentation. The change in presentation of revenue does not change the Company\u2019s total revenues or costs of revenues.<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" style=\"max-width:3%;min-width:3%\">\u00a0<\/td>\n<td style=\"max-width:97%;width:97%;min-width:97%\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong><br \/>\n          <em>PDF Solutions<\/em><br \/>\n        <\/strong>\u00ae<strong><em> Reports 2025 Fourth Quarter and Full Year Financial Results, Announcing Record 2025 Fourth Quarter and Record Full Year Total Revenue<\/em><\/strong><\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"21\" style=\"vertical-align: bottom\">\n            <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n            <br \/>\n            <strong>RECONCILIATION OF GAAP GROSS PROFIT AND MARGIN TO NON-GAAP GROSS PROFIT AND MARGIN (UNAUDITED)<\/strong><br \/>\n            <br \/>\n            <strong>(In thousands)<\/strong><br \/>\n            <strong><br \/>\n              <br \/>\n            <\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Twelve Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>September 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:30%;width:30%;min-width:30%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <u>GAAP<\/u>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Total revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">62,403<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">57,115<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">50,085<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">219,024<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">179,465<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Costs of revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">16,942<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">15,840<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">15,901<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">60,623<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">54,144<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP gross profit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">45,461<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">41,275<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">34,184<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">158,401<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">125,321<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP gross margin<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">73<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">72<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">68<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">72<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">70<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <u>Non-GAAP<\/u>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP gross profit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">45,461<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">41,275<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">34,184<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">158,401<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">125,321<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjustments to reconcile GAAP to non-GAAP gross profit:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Stock-based compensation expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,379<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,274<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,336<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">5,252<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">5,087<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Amortization of acquired technology under costs of revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">998<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">998<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">583<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">3,672<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">2,335<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP gross profit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">47,838<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">43,547<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">36,103<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">167,325<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">132,743<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP gross margin<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">77<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">76<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">72<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">76<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">74<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"21\" style=\"vertical-align: bottom\">\n            <strong>RECONCILIATION OF GAAP INCOME FROM OPERATIONS AND\u00a0OPERATING MARGIN TO NON-GAAP INCOME FROM OPERATIONS AND OPERATING MARGIN (UNAUDITED)<\/strong><br \/>\n            <br \/>\n            <strong>(In thousands)<\/strong><br \/>\n            <strong><br \/>\n              <br \/>\n            <\/strong><br \/>\n            <strong><br \/>\n              <br \/>\n            <\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Twelve Months Ended<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>September 30,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:30%;width:30%;min-width:30%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:11%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP income from operations<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">3,458<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">4,827<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">512<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">5,847<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">935<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP operating margin<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">6<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">8<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">3<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">1<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjustments to reconcile GAAP to non-GAAP income from operations:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Stock-based compensation expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">6,866<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">6,264<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">6,507<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">25,925<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">25,047<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Amortization of acquired intangible assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">2,066<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">2,067<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">765<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">7,255<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">3,231<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Expenses for certain legal proceedings (1)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">2,574<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">170<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">69<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">2,971<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">69<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Acquisition-related and integration costs<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">2<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">22<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">940<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">4,528<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">940<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP income from operations<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">14,966<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">13,350<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">8,793<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">46,526<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">30,222<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP operating margin<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">24<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">23<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">18<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">21<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">17<\/td>\n<td style=\"vertical-align: bottom\">%<\/td>\n<\/tr>\n<\/table>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"2\" style=\"max-width:3%;width:3%;min-width:3%;padding-right: 0;text-align: left;vertical-align: middle;vertical-align: top\">(1)<\/td>\n<td style=\"max-width:97%;width:97%;min-width:97%;text-align: justify;vertical-align: middle;vertical-align: top\">Represents legal costs and expenses related to a certain litigation and an arbitration proceeding, which are expected to continue until these matters are resolved.<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" style=\"text-align: left;vertical-align: middle;vertical-align: top\">\u00a0<\/td>\n<td style=\"vertical-align: top\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong><br \/>\n          <em>PDF Solutions<\/em><br \/>\n        <\/strong>\u00ae<strong><em> Reports 2025 Fourth Quarter and Full Year Financial Results, Announcing Record 2025 Fourth Quarter and Record Full Year Total Revenue<\/em><\/strong><\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"width:40.0186%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"width:26.0087%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"21\" style=\"width:100.08%;vertical-align: bottom\">\n            <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n            <br \/>\n            <strong>RECONCILIATION OF GAAP NET INCOME (LOSS) TO NON-GAAP NET INCOME (UNAUDITED)<\/strong><br \/>\n            <br \/>\n            <strong>(In thousands, except per share amounts)<\/strong><br \/>\n            \n          <\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"10\" style=\"width:40.0186%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three Months Ended<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"6\" style=\"width:26.0087%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Twelve Months Ended<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>September 30,<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December 31,<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2025<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"width:11.9989%;border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:30%;width:30.0307%;min-width:30%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:10.9934%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:10.9934%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:10.9934%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:10.9934%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:11%;width:10.9934%;min-width:11%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1.00549%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\n            <strong>GAAP net income (loss)<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">(48<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">1,294<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">539<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">(640<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">4,057<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">Adjustments to reconcile GAAP net income (loss) to non-GAAP net income:<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Stock-based compensation expense<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">6,866<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">6,264<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">6,507<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">25,925<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">25,047<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Amortization of acquired intangible assets<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">2,066<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">2,067<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">765<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">7,255<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">3,231<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Expenses for certain legal proceedings (1)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">2,574<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">170<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">69<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">2,971<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">69<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Acquisition-related and integration costs<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">2<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">22<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">940<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">4,528<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">940<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Loss on damaged equipment in-transit, net of (recovery) from previously written-off property and equipment<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">663<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">(663<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">608<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Amortization of debt issuance costs<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">55<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">54<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">185<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: middle;text-align: left;padding-left: 30.0px;vertical-align: bottom\">Tax impact of valuation allowance for deferred tax assets and reconciling items (2)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">495<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(66<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">375<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,330<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(1,335<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\n            <strong>Non-GAAP net income<\/strong>\n          <\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">12,010<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">9,805<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">9,858<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">37,231<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">32,617<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">GAAP net income (loss) per diluted share<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(0.00<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.03<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.01<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">(0.02<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">)<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.10<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">Non-GAAP net income per diluted share<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.30<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.25<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.25<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.94<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.84<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">Weighted average common shares used in GAAP net income (loss) per diluted share calculation<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,524<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,619<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,104<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,317<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,047<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:30.0307%;vertical-align: bottom\">Weighted average common shares used in non-GAAP net income per diluted share calculation<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,911<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,619<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,104<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,521<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:1.00549%;border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:10.9934%;border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,047<\/td>\n<td style=\"width:1.00549%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p \/>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"2\" style=\"max-width:3%;width:3%;min-width:3%;padding-right: 0;text-align: left;vertical-align: middle;vertical-align: top\">(1)<\/td>\n<td style=\"max-width:97%;width:97%;min-width:97%;text-align: justify;vertical-align: middle;vertical-align: top\">Represents legal costs and expenses related to a certain litigation and an arbitration proceeding, which are expected to continue until these matters are resolved.<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td colspan=\"2\" style=\"max-width:3%;width:3%;min-width:3%;padding-right: 0;text-align: left;vertical-align: middle;vertical-align: top\">(2)<\/td>\n<td style=\"max-width:97%;width:97%;min-width:97%;text-align: justify;vertical-align: middle;vertical-align: top\">The difference between the GAAP and non-GAAP income tax provisions is primarily due to the valuation allowance on a GAAP basis and non-GAAP adjustments. For example, on a GAAP basis, the Company does not receive a deferred tax benefit for foreign tax credits or research and development credits after the valuation allowance. The Company\u2019s non-GAAP tax rate and resulting non-GAAP tax expense is not calculated with a full U.S. federal or state valuation allowance due to the Company\u2019s cumulative non-GAAP income and management\u2019s conclusion that it is more likely than not to utilize its net deferred tax assets (DTAs). Each reporting period, management evaluates the need for a valuation allowance and may place a valuation allowance against its U.S. net DTAs on a non-GAAP basis if it concludes it is more likely than not that it will not be able to utilize some or all of its U.S. DTAs on a non-GAAP basis.<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" style=\"max-width:3%;min-width:3%\">\u00a0<\/td>\n<td style=\"max-width:97%;width:97%;min-width:97%\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<table align=\"center\" style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"max-width:48%;width:48%;min-width:48%;text-align: justify;vertical-align: middle;vertical-align: top\">\n            <strong>Company Contacts:<\/strong>\n          <\/td>\n<td style=\"max-width:2%;width:2%;min-width:2%;vertical-align: top\">\u00a0<\/td>\n<td style=\"max-width:50%;width:50%;min-width:50%;vertical-align: top\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Adnan Raza<\/td>\n<td style=\"vertical-align: top\">\u00a0<\/td>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Sonia Segovia<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Chief Financial Officer<\/td>\n<td style=\"vertical-align: top\">\u00a0<\/td>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Investor Relations<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Tel: (408) 280-7900<\/td>\n<td style=\"vertical-align: top\">\u00a0<\/td>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Tel: (408) 938-6491<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Email:\u00a0adnan.raza@pdf.com<\/td>\n<td style=\"vertical-align: top\">\u00a0<\/td>\n<td style=\"text-align: justify;vertical-align: middle;vertical-align: top\">Email: sonia.segovia@pdf.com<\/td>\n<\/tr>\n<\/table>\n<p align=\"center\">\n        \n      <\/p>\n<p>      <img decoding=\"async\" alt=\"\" class=\"__GNW8366DE3E__IMG\" src=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=\" \/><br \/>\n      <br \/>\n      <img decoding=\"async\" alt=\"\" src=\"https:\/\/ml.globenewswire.com\/media\/YTA1YzJiMTMtMTFlOS00Y2UxLTljNjQtZjZmMjk0YjZjMDU2LTEwMzIwNTktMjAyNi0wMi0xMi1lbg==\/tiny\/PDF-Solutions-Inc-.png\" \/>\n    <\/div>\n<div class=\"mw_contactinfo\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>SANTA CLARA, Calif., Feb. 12, 2026 (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and full year ended December 31, 2025. Financial Highlights of Fourth\u00a0Quarter 2025 \u25cf Record quarterly total revenues of $62.4 million, up 25% over last year\u2019s comparable quarter \u25cf GAAP gross margin of 73% and non-GAAP gross margin of 77% \u25cf GAAP operating margin of 6% and non-GAAP operating margin of 24% \u25cf GAAP diluted loss per share (LPS) of $(0.00) and non-GAAP diluted earnings per share (EPS)\u00a0of $0.30 \u00a0 \u00a0 Financial Highlights of Full Year 2025 \u25cf Record full year total revenues of $219.0 million, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-936689","post","type-post","status-publish","format-standard","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues - Market Newsdesk<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues - Market Newsdesk\" \/>\n<meta property=\"og:description\" content=\"SANTA CLARA, Calif., Feb. 12, 2026 (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and full year ended December 31, 2025. Financial Highlights of Fourth\u00a0Quarter 2025 \u25cf Record quarterly total revenues of $62.4 million, up 25% over last year\u2019s comparable quarter \u25cf GAAP gross margin of 73% and non-GAAP gross margin of 77% \u25cf GAAP operating margin of 6% and non-GAAP operating margin of 24% \u25cf GAAP diluted loss per share (LPS) of $(0.00) and non-GAAP diluted earnings per share (EPS)\u00a0of $0.30 \u00a0 \u00a0 Financial Highlights of Full Year 2025 \u25cf Record full year total revenues of $219.0 million, &hellip; Continue reading &quot;PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/\" \/>\n<meta property=\"og:site_name\" content=\"Market Newsdesk\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-12T21:54:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=\" \/>\n<meta name=\"author\" content=\"Newsdesk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Newsdesk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/\"},\"author\":{\"name\":\"Newsdesk\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"headline\":\"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues\",\"datePublished\":\"2026-02-12T21:54:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/\"},\"wordCount\":3059,\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/\",\"name\":\"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues - Market Newsdesk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=\",\"datePublished\":\"2026-02-12T21:54:03+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=\",\"contentUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\",\"name\":\"Market Newsdesk\",\"description\":\"Latest Business News in Real Time\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\",\"name\":\"Newsdesk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"caption\":\"Newsdesk\"},\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/author\\\/newsdesk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues - Market Newsdesk","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/","og_locale":"en_US","og_type":"article","og_title":"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues - Market Newsdesk","og_description":"SANTA CLARA, Calif., Feb. 12, 2026 (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and full year ended December 31, 2025. Financial Highlights of Fourth\u00a0Quarter 2025 \u25cf Record quarterly total revenues of $62.4 million, up 25% over last year\u2019s comparable quarter \u25cf GAAP gross margin of 73% and non-GAAP gross margin of 77% \u25cf GAAP operating margin of 6% and non-GAAP operating margin of 24% \u25cf GAAP diluted loss per share (LPS) of $(0.00) and non-GAAP diluted earnings per share (EPS)\u00a0of $0.30 \u00a0 \u00a0 Financial Highlights of Full Year 2025 \u25cf Record full year total revenues of $219.0 million, &hellip; Continue reading \"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues\"","og_url":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/","og_site_name":"Market Newsdesk","article_published_time":"2026-02-12T21:54:03+00:00","og_image":[{"url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=","type":"","width":"","height":""}],"author":"Newsdesk","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Newsdesk","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/#article","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/"},"author":{"name":"Newsdesk","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"headline":"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues","datePublished":"2026-02-12T21:54:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/"},"wordCount":3059,"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/","url":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/","name":"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues - Market Newsdesk","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/#primaryimage"},"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=","datePublished":"2026-02-12T21:54:03+00:00","author":{"@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"breadcrumb":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/#primaryimage","url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU=","contentUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTY1NDExNyM3NDI0Mzc0IzIwMjA5NjU="},{"@type":"BreadcrumbList","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-reports-2025-fourth-quarter-and-full-year-financial-results-and-announces-record-2025-fourth-quarter-and-record-full-year-total-revenues\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.marketnewsdesk.com\/"},{"@type":"ListItem","position":2,"name":"PDF Solutions\u00ae Reports 2025 Fourth Quarter and Full Year Financial Results and Announces Record 2025 Fourth Quarter and Record Full Year Total Revenues"}]},{"@type":"WebSite","@id":"https:\/\/www.marketnewsdesk.com\/#website","url":"https:\/\/www.marketnewsdesk.com\/","name":"Market Newsdesk","description":"Latest Business News in Real Time","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.marketnewsdesk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979","name":"Newsdesk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","caption":"Newsdesk"},"url":"https:\/\/www.marketnewsdesk.com\/index.php\/author\/newsdesk\/"}]}},"_links":{"self":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/936689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/comments?post=936689"}],"version-history":[{"count":0,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/936689\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/media?parent=936689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/categories?post=936689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/tags?post=936689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}