<SEC-DOCUMENT>0001171843-20-001695.txt : 20200313
<SEC-HEADER>0001171843-20-001695.hdr.sgml : 20200313
<ACCEPTANCE-DATETIME>20200313084710
ACCESSION NUMBER:		0001171843-20-001695
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		106
CONFORMED PERIOD OF REPORT:	20191231
FILED AS OF DATE:		20200313
DATE AS OF CHANGE:		20200313

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			UFP TECHNOLOGIES INC
		CENTRAL INDEX KEY:			0000914156
		STANDARD INDUSTRIAL CLASSIFICATION:	SURGICAL & MEDICAL INSTRUMENTS & APPARATUS [3841]
		IRS NUMBER:				042314970
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

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

	BUSINESS ADDRESS:	
		STREET 1:		100 HALE STREET
		CITY:			NEWBURYPORT
		STATE:			MA
		ZIP:			01950
		BUSINESS PHONE:		978-352-2200

	MAIL ADDRESS:	
		STREET 1:		100 HALE STREET
		CITY:			NEWBURYPORT
		STATE:			MA
		ZIP:			01950
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>f10k_031320p.htm
<DESCRIPTION>FORM 10-K
<TEXT>
<HTML><HEAD>
     <TITLE></TITLE>
</HEAD><BODY STYLE="font: 10pt Times New Roman, Times, Serif">





<p style="margin: 0"></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">UNITED STATES</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">SECURITIES AND EXCHANGE COMMISSION</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">WASHINGTON, D.C. 20549</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b><u>FORM 10-K</u></b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr>
    <TD STYLE="vertical-align: top; width: 5%; text-align: center">&#9746;</td>
    <TD STYLE="vertical-align: top; width: 90%; text-align: center"><font style="font-size: 10pt">ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE</font></td>
    <TD STYLE="width: 5%">&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD STYLE="vertical-align: top; text-align: center"><font style="font-size: 10pt">SECURITIES EXCHANGE ACT OF 1934</font></td>
    <TD>&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD>&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD STYLE="vertical-align: top; text-align: center"><font style="font-size: 10pt"><b><u>For the fiscal year ended December 31, 2019</u></b></font></td>
    <TD>&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD>&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD STYLE="vertical-align: top; text-align: center"><font style="font-size: 10pt">OR</font></td>
    <TD>&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD>&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&#9744;</td>
    <TD STYLE="vertical-align: top; text-align: center"><font style="font-size: 10pt">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE</font></td>
    <TD>&nbsp;</TD></tr>
<tr>
    <TD STYLE="vertical-align: top; text-align: center">&nbsp;</td>
    <TD STYLE="vertical-align: top; text-align: center"><font style="font-size: 10pt">SECURITIES EXCHANGE ACT OF 1934</font></td>
    <TD>&nbsp;</TD></tr>
</table>
<p style="font-size: 10pt; text-align: center; text-indent: -0.7in; margin: 0pt 0 0pt 0.7in">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">For the transition period from ____________ to ____________</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">Commission file number: <b>001-12648</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b><u>UFP Technologies, Inc.</u></b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">(Exact name of registrant as specified in its charter)</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr>
    <td style="white-space: nowrap; vertical-align: top; width: 50%; text-align: center"><font style="font-size: 10pt"><b><u>Delaware</u></b></font></td>
    <td style="white-space: nowrap; vertical-align: bottom; width: 1%; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; vertical-align: top; width: 49%; text-align: center"><font style="font-size: 10pt"><b><u>04-2314970</u></b></font></td></tr>
<tr>
    <td style="white-space: nowrap; vertical-align: top; text-align: center"><font style="font-size: 10pt">(State or other jurisdiction of</font></td>
    <td style="white-space: nowrap; vertical-align: bottom; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; vertical-align: top; text-align: center"><font style="font-size: 10pt">(I.R.S. Employer</font></td></tr>
<tr>
    <td style="white-space: nowrap; vertical-align: top; text-align: center"><font style="font-size: 10pt">incorporation or organization)</font></td>
    <td style="white-space: nowrap; vertical-align: bottom; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; vertical-align: top; text-align: center"><font style="font-size: 10pt">Identification No.)</font></td></tr>
<tr>
    <td style="white-space: nowrap; vertical-align: top; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; vertical-align: bottom; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; vertical-align: top; text-align: center">&nbsp;</td></tr>
<tr>
    <td style="white-space: nowrap; vertical-align: top; text-align: center"><font style="font-size: 10pt"><b><u>100 Hale Street, Newburyport, MA &#8211; USA</u></b></font></td>
    <td style="white-space: nowrap; vertical-align: bottom; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; vertical-align: top">
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b></b></p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b><u>01950-3504</u></b></p></td></tr>
<tr>
    <td style="white-space: nowrap; vertical-align: top; text-align: center"><font style="font-size: 10pt">(Address of principal executive offices)</font></td>
    <td style="white-space: nowrap; vertical-align: bottom; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; vertical-align: top; text-align: center"><font style="font-size: 10pt">(Zip Code)</font></td></tr>
</table>
<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b><u>(978) 352-2200</u></b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">(Registrant&#8217;s telephone number, including area code)</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">Securities registered pursuant to Section 12(b) of the Act:</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: top">
    <td style="white-space: nowrap; width: 37%; border: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Title of each class</font></td>
    <td style="white-space: nowrap; width: 25%; border-top: Black 1pt solid; border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Trading Symbol(s)</font></td>
    <td style="white-space: nowrap; width: 38%; border-top: Black 1pt solid; border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Name of each exchange on which registered</font></td></tr>
<tr style="vertical-align: top">
    <td style="white-space: nowrap; border-right: Black 1pt solid; border-bottom: Black 1pt solid; border-left: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Common Stock</font></td>
    <td style="white-space: nowrap; border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">UFPT</font></td>
    <td style="white-space: nowrap; border-right: Black 1pt solid; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">The NASDAQ Stock Market L.L.C.</font></td></tr>
</table>
<p style="font-size: 10pt; margin: 0pt 0; text-indent: 1.75in">&nbsp;</p>

<p style="text-align: center; margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">Securities registered pursuant to Section 12(g) of the Act: <u>None</u></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined
in Rule 405 of the Securities Act. &nbsp;&nbsp;&nbsp;Yes &#9744;&nbsp;&nbsp;&nbsp;No &#9746;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Indicate by check mark if the registrant is not required to file reports pursuant to
Section 13 or Section 15(d) of the Exchange Act. &nbsp;&nbsp;&nbsp;Yes &#9744;&nbsp;&nbsp;&nbsp;No &#9746;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Indicate by check mark whether the registrant (1) has filed all reports required to
be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period
that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days.
&nbsp;&nbsp;&nbsp;Yes &#9746;&nbsp;&nbsp;&nbsp;No &#9744;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Indicate by check mark whether the registrant has submitted electronically every
Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for
such shorter period that the registrant was required to submit and post such files). &nbsp;&nbsp;&nbsp;Yes
&#9746;&nbsp;&nbsp;&nbsp;No &#9744;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><p style="margin: 0pt">&nbsp;</p><p style="margin: 0pt"></p></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated
filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of &#8220;large
accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth
company&#8221; in Rule 12b-2 of the Exchange Act.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: top; text-align: left">
    <td style="width: 50%"><font style="font-size: 10pt">Large accelerated filer &#9744;</font></td>
    <td style="width: 1%"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 49%"><font style="font-size: 10pt">Accelerated filer &#9746;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">Non-accelerated filer &#9744;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">Smaller reporting company &#9746;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">Emerging growth company &#9744;</font></td></tr>
</table>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0; text-indent: 3.5in"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">If an emerging growth company, indicate by check mark if the registrant has elected
not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant
to Section 13(a) of the Exchange Act. &#9744;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Indicate by check mark whether the registrant is a shell company (as defined in Rule
12b-2 of the Act). &nbsp;&nbsp;&nbsp;Yes &#9744;&nbsp;&nbsp;&nbsp; No &#9746;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The aggregate market value of the voting and non-voting common equity held by non-affiliates
of the registrant as of the last business day of the registrant&#8217;s most recently completed second fiscal quarter was approximately
$279,729,924, based on the closing sales price of $41.61 per share of such stock on the NASDAQ Capital Market on June 28, 2019.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">As of March 5, 2020, there were 7,463,260 shares of common stock, $0.01 par value per
share, of the registrant outstanding.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>DOCUMENTS INCORPORATED BY REFERENCE</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; width: 62%; text-align: center"><font style="font-size: 10pt"><u>Document</u></font></td>
    <td style="white-space: nowrap; width: 3%; text-align: center"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap; width: 35%; text-align: center"><font style="font-size: 10pt"><u>Parts of this Form 10-K Into Which Incorporated</u></font></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center; white-space: nowrap"><font style="font-size: 10pt">Portions of the registrant&#8217;s Proxy Statement for the <br>
2020 Annual Meeting of Shareholders.</font></td>
    <td style="white-space: nowrap; text-align: center">&nbsp;</td>
    <td style="white-space: nowrap; text-align: center"><font style="font-size: 10pt">Part III</font></td></tr>
</table>
<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 2 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><p style="margin: 0pt">&nbsp;</p><p style="margin: 0pt"></p></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><font style="text-transform: uppercase"><b><u>PART I</u></b></font></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">SPECIAL NOTE REGARDING FORWARD-LOOKING STATEMENTS</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Some of the statements contained in this Report are forward-looking statements within
the meaning of Section&nbsp;27A of the Securities Act of 1933, as amended (Securities Act), and Section&nbsp;21E of the Securities
Exchange Act of 1934, as amended (Exchange Act). These statements are subject to known and unknown risks, uncertainties, and other
factors, which may cause our or our industry&rsquo;s actual results, performance, or achievements to be materially different from
any future results, performance or achievements expressed or implied by the forward-looking statements. Forward-looking statements
include, but are not limited to, statements about the Company&rsquo;s prospects, statements about the Company&rsquo;s acquisition
strategies and opportunities and the Company&rsquo;s growth potential and strategies for growth, anticipated trends in the different
markets in which the Company competes, including the medical, automotive, aerospace and defense, consumer, electronics and industrial
markets, expectations about shifting the Company&rsquo;s book of business to higher-margin opportunities, expectations regarding
the duration and extent of slowdowns in demand in certain segments, expectations regarding customer demand, anticipated advantages
the Company expects to realize from its investments and capital expenditures, expectations regarding the Company&rsquo;s manufacturing
capacity, operating efficiencies, and new production equipment, statements about new product offerings and program launches and
the expected timing thereof, statements about the Company&rsquo;s acquisition and integration of Dielectrics and the synergies,
customer opportunities and other benefits anticipated in connection with the Dielectrics business and products, the Company&rsquo;s
participation and growth in multiple markets, its business opportunities, expectations regarding the Company&rsquo;s liquidity,
anticipated revenues and the timing of such revenues, and any indication that the Company may be able to sustain or increase its
sales, earnings or earnings per share, or its sales, earnings or earnings per share growth rates. Investors are cautioned that
such forward-looking statements involve risks and uncertainties, including without limitation  risks and uncertainties associated
with the Company&rsquo;s acquisition and integration of Dielectrics, risks associated with the identification of suitable acquisition
candidates and the successful, efficient execution of acquisition transactions, the financing of such acquisitions and the integration
of any acquisition candidates, risks associated with increasing manufacturing capacity and efficiencies, and new production equipment
of the Company, risks associated with efforts to shift the Company&rsquo;s book of business to higher-margin opportunities, risks
associated with slowdowns in demand, risks and uncertainties associated with the anticipated growth of the Company&rsquo;s business
and increases to sales, earnings and earnings per share, the risk that the Company may not be able to finalize anticipated new
customer and vendor contracts, risks associated with new product and program launches, and risks related to our indebtedness and
compliance with covenants contained in our financing arrangements. Accordingly, actual results may differ materially.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>



<P STYLE="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">In some cases, you can identify forward-looking statements by terms such as &#8220;may,&#8221;
&#8220;will,&#8221; &#8220;should,&#8221; &#8220;could,&#8221; &#8220;would,&#8221; &#8220;expects,&#8221; &#8220;plans,&#8221;
&#8220;anticipates,&#8221; &#8220;believes,&#8221; &#8220;estimates,&#8221; &#8220;projects,&#8221; &#8220;predicts,&#8221; &#8220;potential,&#8221;
and similar expressions intended to identify forward-looking statements. Our actual results could be different from the results
described in or anticipated by our forward-looking statements due to the inherent uncertainty of estimates, forecasts, and projections,
and may be materially better or worse than anticipated. Given these uncertainties, you should not place undue reliance on these
forward-looking statements. Forward-looking statements represent our estimates and assumptions only as of the date of this Report.
We expressly disclaim any duty to provide updates to forward-looking statements, and the estimates and assumptions associated with
them, after the date of this Report, in order to reflect changes in circumstances or expectations, or the occurrence of unanticipated
events, except to the extent required by applicable securities laws. All of the forward-looking statements are qualified in their
entirety by reference to the factors discussed above and under &#8220;Risk Factors&#8221; set forth in Part I Item 1A of this Report,
as well as the risks and uncertainties discussed elsewhere in this Report. We qualify all of our forward-looking statements by
these cautionary statements. We caution you that these risks are not exhaustive. We operate in a continually changing business
environment and new risks emerge from time to time.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Unless the context requires otherwise, the terms &#8220;we&#8221;, &#8220;us&#8221;,
&#8220;our&#8221;, or &#8220;the Company&#8221; refer to UFP Technologies, Inc. and its consolidated subsidiaries.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 3; Options: NewSection; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->3<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>ITEM 1. BUSINESS</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company is an innovative designer and custom manufacturer of components, subassemblies,
products and packaging utilizing highly specialized foams, films, and plastics primarily for the medical market. The Company manufactures
its products by converting raw materials using laminating, molding, radio frequency and impulse welding and fabricating manufacturing
techniques. The Company is an important link in the medical device supply chain and a valued outsource partner to many of the top
medical device manufacturers in the world. The Company&#8217;s single-use and single-patient devices and components are used in
a wide range of medical devices, disposable wound care products, infection prevention, minimally invasive surgery, wearables, orthopedic
soft goods, and orthopedic implant packaging.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company is diversified by also providing highly engineered products and components
to customers in the automotive, aerospace and defense, consumer, electronics and industrial markets. Typical applications of its
products include military uniform and gear components, automotive interior trim, athletic padding, environmentally friendly protective
packaging, air filtration, abrasive nail files, and protective cases and inserts.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company was incorporated in the State of Delaware in 1993.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The consolidated financial statements of the Company include the accounts and results
of operations of UFP Technologies, Inc. and its wholly-owned subsidiaries, Dielectrics, Inc. (&#8220;Dielectrics&#8221;), Moulded
Fibre Technology, Inc., Simco Industries, Inc., and UFP Realty LLC (&#8220;UFP Realty&#8221;), and UFP Realty&#8217;s wholly-owned
subsidiaries, UFP MA, LLC, UFP CO, LLC, UFP FL, LLC, UFP TX, LLC, UFP MI, LLC, and UFP IA, LLC. All significant inter-company balances
and transactions have been eliminated in consolidation. The vast majority of the Company&#8217;s assets are located within the
United States. FlexShield&#174;, FirmaLite&#174;, Winepacks&#174;, BioShell&#174;, T-Tubes&#174;, Tri-Covers&#174;, Erasables&#174;, Design
Nail&#174;, Pro-Sticks&#174;, Cryoshell&#174; Case Fit&#174;, and Mambo&#174; are our U.S. registered trademarks. Each trademark, trade
name, or service mark of any other company appearing in this Report belongs to its respective holder.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Available Information </b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s Internet website address is http://www.ufpt.com. Through its website,
the Company makes available, free of charge, its annual report on Form 10-K, quarterly reports on Form 10-Q, current reports on
Form 8-K and any amendments to those reports, as soon as reasonably practicable after the Company electronically files such material
with, or furnishes it to, the Securities and Exchange Commission (&#8220;SEC&#8221;). These SEC reports can be accessed through
the investor relations section of the Company&#8217;s website. The information found on the Company&#8217;s website is not part
of this or any other report filed with or furnished to the SEC. You may read and copy any materials filed with the SEC at the SEC&#8217;s
Public Reference Room at 100 F Street, NE, Washington, DC 20549. You may obtain information on the operation of the Public Reference
Room by calling the SEC at 1-800-SEC-0330. The SEC also maintains an Internet website that contains reports, proxy and information
statements, and other information regarding the Company and other issuers that file electronically with the SEC. The SEC&#8217;s
Internet website address is http://www.sec.gov.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Market Overview</b></p>

<p style="font-size: 10pt; margin: 0pt 0">The applications for the Company&#8217;s products are numerous and diverse. The Company
sells its products into distinct markets with its primary focus on the Medical market:</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td><b>Medical </b>&#8211; The global medical market is large, growing, and varied but the Company targets specific segments where
its access to highly specialized materials combined with its design and manufacturing expertise helps customers differentiate products,
minimize the patient&#8217;s risk of infection, improve patient outcomes, and increase their client&#8217;s speed to market. The
product segments include: infection prevention, medical devices, orthopedics, wound care, surgical instruments, diagnostics, and
biopharma.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td><b>Automotive - </b> Automotive companies are challenged with creating quieter, safer and more efficient vehicles. The Company
partners with OEMs, Tier 1 suppliers, and its own material manufacturers to develop customized solutions to solve automakers&#8217;
biggest challenges.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 4; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->4<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td><b>Aerospace</b> &#8211; The Company primarily targets commercial aircraft manufacturers to address the need for improved safety,
better fuel economy, lower emissions, and overall passenger comfort.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td><b>Defense</b> &#8211; As a long-time supplier to military defense contractors and law enforcement, the Company provides highly
innovative solutions to ensure soldier safety, improve comfort, and protect mission critical equipment.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td><b>Consumer &amp; Electronics</b> &#8211; The Company manufactures protective packaging for large and fragile consumer products.
The rise of direct-to-consumer shipping as well as a need for environmentally friendly packaging has increased demand for the company&#8217;s
molded fiber products. For the sports and leisure segment, the Company is an innovator in comfort cushioning for helmets and other
protective gear.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td><b>Industrial</b> &#8211; The applications for the Company&#8217;s industrial products are highly diverse. Examples include
air and liquid filters, tool control cases, insulation, seals, and gaskets.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"><b>Products</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">The Company&#8217;s custom products are targeted at macro market trends and create specific
opportunities in niche segments where the Company&#8217;s access to specialty materials, engineering know-how, and processing expertise
can be leveraged to create value for its customers. Examples of its custom products targeted to specific markets include:</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt">
<tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td><b>Medical </b>&#8211; Single patient use surfaces, advanced wound care, infection prevention,
disposables for surgical procedures, endoscopic procedures, orthopedic implants, orthopedic appliances, biopharma drug manufacturing.
In general, the Company&#8217;s solutions are all aimed at improving treatment outcomes while reducing risk and cost.</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&#8226;</td><td><b>Automotive </b>&#8211; Molded components designed to make cars lighter (therefore
more fuel efficient), quieter, and safer. Applications include load floors, sun shades, SUV cargo cover handles, driveshaft damping,
engine &amp; manifold covers, acoustic insulation, quarter panels and wheel liners.</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&#8226;</td><td><b>Aerospace </b>&#8211; Molded composites for commercial aviation to make
planes lighter and safer. The Company is focused on specialty foam (PVDF) tubing for a leader in the industry.</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&#8226;</td><td><b>Defense - </b>Molded composites for military gear to improve the safety
and comfort of soldiers. Applications include backpack components, knee and elbow pads, eyewear, and helmets.</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&#8226;</td><td><b>Consumer and Electronic Packaging </b>&#8211; 100% recycled protective
packaging for&nbsp;B2C brands primarily focused on electronics, candles, wine, and other high-volume consumer products using the
&#8220;next day&#8221; carrier infrastructure.</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr style="vertical-align: top">
<td>&nbsp;</td><td>&#8226;</td><td><b>Specialty Case Solutions </b>&#8211; Reusable cases and custom inserts
to quickly and safely deploy high-end, customized product solutions. Applications include military equipment and high-value commercial
electronics.</td></tr>
</table>



<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"><b>Regulatory Climate and Environmental Considerations </b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s medical customers typically require FDA approval for their products
and therefore sometimes require their suppliers to manufacture in facilities that are FDA approved and comply with the ISO 13485
quality standard for medical devices. The Company has seven manufacturing locations that are ISO 13485 certified and four that
are FDA approved. The Company&#8217;s automotive customers sometimes require their suppliers to certify their manufacturing locations
to the IATF 16949 automotive quality standard. The Company&#8217;s Grand Rapids, MI facility meets this requirement. The Company&#8217;s
molded fiber packaging operation manufactures environmentally friendly and sustainable products made primarily from post-consumer
newsprint and water. As a further commitment to protecting the environment, the Clinton, IA and El Paso, TX operations are certified
to ISO 14001, an international environmental standard. The packaging industry has been subject to user, industry, and legislative
pressure to develop environmentally responsible packaging alternatives that reduce, reuse, and recycle packaging materials. Government
authorities have enacted legislation relating to source reduction, specific product bans, recycled content, recyclability requirements,
and &#8220;green marketing&#8221; restrictions. In order to provide packaging that complies with all regulations regardless of
a product&#8217;s destination, manufacturers seek packaging materials that meet both environmentally-related demands and performance
specifications. Some packaging manufacturers have responded by reducing product volume and ultimate waste product disposal through
reengineering traditional packaging solutions; adopting new manufacturing processes; participating in recovery and reuse systems
for resilient materials that are inherently reusable; creating programs to recycle packaging following its useful life; and developing
materials that use a high percentage of recycled content in their manufacture. Wherever feasible, the Company aims to employ one
or more of these techniques to create environmentally-responsible packaging solutions. In addition to offering molded fiber packaging
products made from recycled paper derived primarily from post-consumer newspaper waste, the Company actively promotes its philosophy
of reducing product volume and resulting post-user product waste. The Company designs products to provide optimum performance with
minimum material. In addition, the Company bales and disposes of certain of its urethane foam scrap for use in the carpeting industry.
The Company&#8217;s Newburyport, MA facility utilizes solar power to provide approximately 13% of its electricity, with plans to
increase capacity in the future. The Company is aware of public support for environmentally-responsible packaging and products.
Future government action may impose restrictions affecting the industry in which the Company operates. There can be no assurance
that any such action will not adversely impact the Company&#8217;s products and business.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt"><b></b></p>

<!-- Field: Page; Sequence: 5; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->5<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Marketing and Sales</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company markets to the target industries it serves by promoting specific solutions,
materials, and manufacturing capabilities and services. The Company is marketed through websites, trade shows and expositions,
social media, online advertising, and press releases. Its relationships with key material suppliers are also an important part
of its marketing and sales efforts. The Company markets and sells its products in the United States principally through a direct
sales force. The Company also uses independent manufacturer representatives to sell its products. The Company&#8217;s sales people,
in conjunction with Company engineers, collaborate with customers and in-house design and manufacturing experts to develop custom-engineered
solutions on a cost-effective basis. For the year ended December 31, 2019, no one customer&#8217;s sales exceeded 10% of total
sales. Seasonality is not a major factor in the Company&#8217;s sales. See the Company&#8217;s consolidated financial statements
contained in Part IV, Item 15, of this Report for net sales by market.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Working Capital</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company funds its business operations through a combination of available cash and
cash equivalents, and cash generated from operations. In addition, the Company&#8217;s revolving credit facility is available for
additional working capital needs.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Manufacturing</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s manufacturing operations consist primarily of cutting, routing, molding,
vacuum-forming, laminating, radio frequency and impulse welding and assembling. For medical custom-molded foam products and thermoplastic
welded devices, the Company&#8217;s skilled engineering personnel analyze specific customer requirements to design and build prototype
products to determine product functionality. Upon customer approval, prototypes are converted to final designs for commercial production
runs. Molded cross-linked foam products are produced in a thermoforming process using heat, pressure, and precision metal tooling.
Plastics and other materials are sealed using radio frequency and impulse welding. Reticulated polyurethane foam is also used for
many high-performance medical products requiring precision fluid or air management. These products are typically fabricated using
high speed die-cutting or waterjet cutting. Laminated products for medical, military, and personal comfort and protection are produced
through a process whereby the foam medium is heated to the melting point. The heated foam is then typically bonded to a non-foam
material through the application of mechanical pressure.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company also engineers components for automotive use as interior trim and structural
applications. These components are produced using a compression molding process to create highly functional composites consisting
of various materials such as polypropylene/fiberglass panels, nonwovens, and fabrics. Highly specialized polypropylene based nonwoven
material is used for automotive interior noise reduction and is fabricated using a die cut process. Foam for packaging, filtration,
acoustical, and thermal insulation products that do not utilize cross-linked foam are fabricated by cutting shapes from blocks
of foam, using specialized cutting tools, routers, water jets, and hot wire equipment, and assembling these shapes into the final
product using a variety of foam welding or gluing techniques. Products can be used on a stand-alone basis or bonded to another
foam product or other material such as a corrugated medium.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 6; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->6<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Molded fiber products are manufactured by vacuum-forming a pulp of recycled or virgin
paper materials onto custom-engineered molds. With the application of vacuum and air, the molded parts are pressed and transferred
to an in-line dryer, from which they exit ready for packing or subsequent value-added operations. The Company does not manufacture
any of the raw materials used in its products. With the exception of certain grades of cross-linked foam and technical polyurethane
foams, these raw materials are available from multiple supply sources. Although the Company relies upon a limited number of suppliers
for cross-linked and technical polyurethane foams, the Company&#8217;s relationships with its suppliers are good, and the Company
expects that these suppliers will be able to meet its requirements for these foams. Any delay or interruption in the supply of
raw materials could have a material adverse effect on the Company&#8217;s business.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Research and Development</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s engineering personnel continuously explore design and manufacturing
techniques, as well as new and innovative materials to meet the unique demands and specifications of its customers. Because the
Company&#8217;s products tend to have relatively short life cycles, research and development is an integral part of the Company&#8217;s
ongoing cost structure.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Competition</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The medical contract manufacturing industry is highly competitive as is the foam and
plastics converting industry as a whole. While there are several national companies that convert foam and plastics, the Company&#8217;s
primary competition is from smaller independent regional manufacturing companies. These companies generally market their products
in specific geographic areas from neighboring facilities. In addition, the Company&#8217;s foam and fiber packaging products compete
against products made from alternative materials, including expanded polystyrene foams, die-cut corrugated, plastic peanuts, plastic
bubbles, and foam-in-place urethane. The Company&#8217;s custom engineered products face competition primarily from smaller companies
that typically concentrate on production of products for specific industries. The Company expects to compete effectively in the
engineered products market due to its ability to address its customers' primary vendor selection criteria, including price, product
performance, product reliability, and customer service, as well as its access to a wide variety of materials, its engineering expertise,
its ability to combine foams with other materials such as plastics and laminates, and its ability to manufacture products in a
clean room environment.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Patents and Other Proprietary Rights </b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company relies upon trade secrets, patents, and trademarks to protect its technology
and proprietary rights. The Company believes the improvement of existing products, reliance upon trade secrets and unpatented proprietary
know-how, and the development of new products are generally as important as patent protection in establishing and maintaining a
competitive advantage. Nevertheless, the Company has obtained patents and may continue to make efforts to obtain patents, when
available, although there can be no assurance that any patent obtained will provide substantial protection or be of commercial
benefit to the Company, or that its validity will be upheld if challenged. The Company has a total of 18 active patents relating
to technologies including foam, packaging, tool control technologies, radio frequency welding, automotive superforming processes
and to certain nail file technologies. The Company also has patent applications in process. There can be no assurance that any
patent or patent application will provide significant protection for the Company&#8217;s products and technology or will not be
challenged or circumvented by others. The expiration dates for the Company&#8217;s patents range from 2021 through 2038.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Backlog </b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s backlog, as of February 21, 2020 and February 22, 2019, totaled approximately
$54.3 million and $53.8 million, respectively. The backlog consists of purchase orders for which a delivery schedule within the
next twelve months has been specified by customers. Orders included in the backlog may generally be canceled or rescheduled by
customers without significant penalty. The backlog as of any particular date should not be relied upon as indicative of the Company&#8217;s
revenues for any period as it includes customer blanket purchase orders that are non-binding.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt"><b></b></p>

<!-- Field: Page; Sequence: 7; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->7<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Employees </b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">As of January 25, 2020, the Company had a total of 986 full-time employees (as compared
to 1051 full-time employees as of January 26, 2019) and 168 temporary employees (as compared to 112 temporary employees at January
26, 2019). The Company is not a party to any collective bargaining agreements. The Company considers its employee relations to
be good.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 1A.</b></td><td><b>RISK FACTORS </b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white">You should carefully consider the risks described below and
the other information in this Report before deciding to invest in shares of our common stock. These are the risks and uncertainties
we believe are most important for you to consider. Additional risks and uncertainties not presently known to us, which we currently
deem immaterial or which are similar to those faced by other companies in our industry or business in general, may also impair
our business operations. If any of the following risks or uncertainties occurs, our business, financial condition and operating
results would likely suffer. In that event, the market price of our common stock could decline, and you could lose all or part
of your investment.</p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0"><b>We depend on a small number of customers for a large percentage
of our revenues. The loss of any such customer, a reduction in sales to any such customer, or the decline in the financial condition
of any such customer could have a material adverse effect on our business, financial condition, and results of operations.</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">A limited number of customers typically represent a significant percentage of our revenues
in any given year. Our top ten customers represented approximately 34.7%, 29.3%, and 28.9% of our total revenues in 2019, 2018,
and 2017, respectively. No one customer&#8217;s sales exceeded 10% of total sales for the year ended December&nbsp;31, 2019. The
loss of a significant portion of our expected future sales to any of our large customers would have a material adverse effect on
our business, financial condition, and results of operations. Likewise, a material adverse change in the financial condition of
any of these customers could have a material adverse effect on our ability to collect accounts receivable from any such customer.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Our business could be harmed if our products contain undetected errors or defects
or do not meet applicable specifications.</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">We are continuously developing new products and improving our existing products. Our
existing and newly introduced products can contain undetected errors or defects. In addition, these products may not meet their
performance specifications under all conditions or for all applications. If, despite internal testing, and testing by customers,
any of our products contain errors or defects or fail to meet applicable specifications, then we may be required to enhance or
improve those products or technologies. We may not be able to do so on a timely basis, if at all, and may only be able to do so
at considerable expense. If a particular error or defect is repeated throughout our mass production process, the cost of repairing
such defect may be highly disproportionate to the original cost of the product or component. In addition, any significant errors,
defects, or other performance failures could render our existing and/or future products unreliable or ineffective and could lead
to decreased confidence in our products, adverse customer reaction, negative publicity, mandatory or voluntary recalls, or legal
claims, the occurrence of any of which could have a material adverse effect upon our business, financial condition and results
of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Further, if our products are defectively designed, manufactured or labeled, contain defective
components or are misused, we may become subject to costly litigation by our customers. Product liability claims could divert management's
attention from our core business, be expensive to defend and result in sizable damage awards against us.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>New technologies could result in the development of new products by our competitors
and a decrease in demand for our products, which could materially adversely affect our business, financial condition and results
of operations. </b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">Our failure to develop new technologies, or anticipate or react to changes in existing
technologies, could result in a decrease in our sales and a loss of market share to our competitors. Our financial performance
depends on our ability to design, develop and manufacture new products and product enhancements on a timely and cost-effective
basis. We may not be able to successfully identify new product opportunities or develop and bring new products to market in a timely
and cost-effective manner.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 8; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->8<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Products or technologies developed by other companies may render our products or technologies
obsolete or noncompetitive. Our failure to identify or capitalize on any fundamental shifts in technologies, relative to our competitors,
could have a material adverse effect on our competitive position within our industry and harm our relationships with our customers.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>If we fail to comply with specific provisions in our customer contracts or with government
contracting or Food and Drug Administration (FDA) regulations, our business could be materially adversely affected. </b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">Our customer contracts, particularly with respect to contracts for which the government
is a direct or indirect customer, may include unique and specialized requirements. This may also include contracts with customers
that derive goods subject to FDA regulations. Failure to comply with the specific provisions in our customer contracts, or any
violation of government or FDA contracting regulations, could result in termination of the contracts, increased costs to us, suspension
of payments, imposition of fines, and suspension from future government contracting. Further, any negative publicity related to
our failure to comply with the provisions in our customer contracts could have a material adverse effect on our business, financial
condition, or results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>We may pursue acquisitions or other strategic relationships that involve inherent
risks, any of which may cause us to not realize anticipated benefits.</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Our business strategy includes the potential acquisition of businesses and other business
combinations that we expect will complement and expand our business. In addition, we may also pursue other strategic relationships
or opportunities. We may not be able to successfully identify suitable acquisition or other strategic opportunities or complete
any particular acquisition, combination, or other transaction on acceptable terms. Our identification of suitable acquisition candidates
and strategic opportunities involves risks inherent in assessing the values, strengths, weaknesses, risks and profitability of
these opportunities including their effects on our business, diversion of our management&#8217;s attention and risks associated
with unanticipated problems or unforeseen liabilities. Our failure to identify suitable acquisition or other strategic opportunities
may restrict our ability to grow our business. If we are successful in pursuing future acquisitions or strategic opportunities,
we may be required to expend significant funds, incur additional debt, or issue additional securities, which may materially and
adversely affect our results of operations and be dilutive to our stockholders. If we spend significant funds or incur additional
debt, our ability to obtain financing for working capital or other purposes could decline and we may be more vulnerable to economic
downturns and competitive pressures. In addition, we cannot guarantee that we will be able to finance additional acquisitions or
that we will realize any anticipated benefits from acquisitions or other strategic opportunities that we complete. When we successfully
acquire another business, such as Dielectrics, the process of successfully integrating the acquired operations into our existing
operations may result in unforeseen operating difficulties and may require significant financial resources that would otherwise
be available for the ongoing development or expansion of our existing business. Decreases in customer loyalty or product orders,
failure to retain and develop the acquired workforce, failure to integrate financial reporting systems, failure to establish and
maintain appropriate controls or unknown or contingent liabilities could adversely affect our ability to realize the anticipated
benefits of an acquisition. The integration of an acquired business such as Dielectrics or any other acquired business, whether
or not successful, requires significant efforts which may result in additional expenses and divert the attention of our management
and technical personnel from other projects. These transactions are inherently risky, and there can be no assurance that any past
or future transaction will be successful.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Failure to retain key personnel could impair our ability to execute our business strategy.</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The continuing service of our executive officers and essential sales, engineering, technical
and management personnel, together with our ability to attract and retain such personnel, is an important factor in our continuing
ability to execute our strategy. There is substantial competition to attract such employees, and the loss of any such key employees
could have a material adverse effect on our business and operating results. The same could be true if we were to experience a high
turnover rate among sales, engineering and technical personnel and we were unable to replace them.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 9; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->9<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>We operate in highly competitive industries and we may be unable to compete successfully,
which could materially adversely affect our business, financial condition and results of operations.</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">We face intense competition in all markets and in each area of our business, in some
cases from our own customers bringing programs in-house. Our primary competition for our products is from smaller, independent,
regional manufacturing companies. Our current competitors may increase their participation in, or new competitors may enter into,
the markets in which we compete. In addition, our suppliers may acquire or develop the capability and desire to compete with us.
If our suppliers choose to expand their own operations, through acquisitions or otherwise, and begin manufacturing and selling
products directly to our customers, it could reduce our pricing or sales volume and overall profitability. If we are unable to
compete successfully with new or existing competitors, it could have a material adverse effect on our business, financial condition
and results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Further, technological innovation by any of our existing competitors, or new competitors
entering any of the markets in which we do business, could put us at a competitive disadvantage and could cause us to lose market
share. Increased competition for the sales of our products could result in price reductions, reduced margins and loss of market
share, which could materially adversely affect our prospects, business, financial condition and results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Our markets are cyclical, which may result in fluctuations in our results of operations.
</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Demand for our products, especially in the automotive and aerospace and defense markets,
is cyclical. Downturns in economic conditions typically have an adverse effect on cyclical industries due to decreased demand for
products. We seek to reduce our exposure to industry downturns and cyclicality by marketing our products to diversified and varied
markets. However, we may experience substantial period-to-period fluctuations in our results of operations due to the cyclical
nature of demand for our products in the markets in which we compete.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>The cost of raw materials that we use to manufacture our products, particularly petroleum
and petroleum-based raw materials, are subject to escalation and could increase, which may materially adversely affect our business,
financial condition and results of operations. </b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">The cost of raw materials, including petroleum and petroleum-based raw materials such
as resins, used in the production of our products, represents a significant portion of our direct manufacturing costs. Any fluctuations
in the price of petroleum, or any other material used in the production of our products, may have a material adverse effect on
our business, financial condition, and results of operations. Such price increases could reduce demand for our products. If we
are not able to buy raw materials at fixed prices, or pass on price increases to our customers, we may lose orders or enter into
orders with less favorable terms, either of which could have a material adverse effect on our business, financial condition, and
results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Security breaches, including cybersecurity incidents and other disruptions could compromise
our information, expose us to liability and harm our reputation and business.</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">In the ordinary course of our business we collect and store sensitive data, including
intellectual property, personal information, our proprietary business information and that of our customers, suppliers and business
partners, and personally identifiable information of our customers and employees in our data centers and on our networks. The secure
maintenance and transmission of this information is critical to our operations and business strategy. We rely on commercially available
systems, software, tools and monitoring to provide security for processing, transmission and storage of confidential information.
Computer hackers may attempt to penetrate our computer systems and, if successful, misappropriate personal or confidential business
information. In addition, an associate, contractor, or other third-party with whom we do business may attempt to circumvent our
security measures in order to obtain such information and may purposefully or inadvertently cause a breach involving such information.
Despite the security measures we have in place and any additional measures we may implement in the future to safeguard our systems
and to mitigate potential security risks, our facilities and systems, and those of our third-party service providers, could be
vulnerable to security breaches. Any such compromise of our data security and access, public disclosure, or loss of personal or
confidential business information could result in legal claims or proceedings, liability under laws that protect the privacy of
personal information, regulatory penalties, disruption of our operations, damage to our reputation, loss of our customers&#8217;
willingness to transact business with us, and subject us to additional costs and liabilities which could materially adversely affect
our business.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 10; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->10<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>We may be unable to protect our proprietary technology from infringement. </b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">We rely on a combination of patents, trademarks, and unpatented proprietary know-how
and trade secrets to establish and protect our intellectual property rights. We enter into confidentiality agreements with suppliers,
customers, employees, consultants and potential acquisition candidates as necessary to protect our know-how, trade secrets and
other proprietary information. However, these measures and our patents and trademarks may not afford complete protection of our
intellectual property, and it is possible that third parties may copy or otherwise obtain and use our proprietary information and
technology without authorization or otherwise infringe on our intellectual property rights. We cannot assure that our competitors
will not independently develop equivalent or superior know-how, trade secrets or production methods. Significant impairment of
our intellectual property rights could harm our business or our ability to compete. For example, if we are unable to maintain the
proprietary nature of our technologies, our profit margins could be reduced as competitors could more easily imitate our products,
possibly resulting in lower prices or lost sales for certain products. In such a case, our business, financial condition and results
of operations may be materially adversely affected.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Fluctuations in the supply of components and raw materials we use in manufacturing
our products could cause production delays or reductions in the number of products we manufacture, which could materially adversely
affect our business, financial condition and results of operations.</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Our business is subject to the risk of periodic shortages of raw materials. We purchase
raw materials pursuant to purchase orders placed from time to time in the ordinary course of business. Failure or delay by such
suppliers in supplying us necessary raw materials could adversely affect our ability to manufacture and deliver products on a timely
and competitive basis.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">While we believe that we may, in certain circumstances, secure alternative sources of
these materials, we may incur substantial delays and significant expense in doing so, the quality and reliability of alternative
sources may not be the same and our operating results may be materially adversely affected. Alternative suppliers might charge
significantly higher prices for materials than we currently pay. Under such circumstances, the disruption to our business could
have a material adverse impact on our customer relationships, business, financial condition, and results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">In addition, we are dependent on a relatively small number of suppliers for cross-linked
foam and technical polyurethane foams. While we believe that we have developed strong relationships with these suppliers, any failure
or delay by such suppliers in supplying us these necessary products could adversely affect our ability to manufacture and deliver
products on a timely and competitive basis.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>We are subject to a variety of federal, state and local laws and regulations, including
health and safety laws and regulations, and the cost of complying, or our failure to comply, with such requirements could materially
adversely affect our business, financial condition and results of operations.</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">We are subject to a variety of federal, state and local laws and regulations, including
health and safety laws and regulations. We must also comply with a variety of laws relating to doing business outside of the United
States, including, among others, laws and regulations relating to Office of Foreign Asset Controls, United States, United Nations,
EU and other country specific sanctions, and the Iran Threat Reduction and Syria Human Rights Act of 2012. The risks of substantial
costs and liabilities related to compliance with these laws and regulations are an inherent part of our business. Despite our intention
to comply with these laws and regulations, we cannot guarantee that we will at all times comply with all such requirements. Compliance
with health and safety legislation and other regulatory requirements may prove to be more limiting and costly than we anticipate
and may also increase substantially in future years. If we violate, or fail to comply with these requirements, we could be fined
or otherwise sanctioned by regulators. In addition, these requirements are complex, change frequently and may become more stringent
over time, which could materially adversely affect our business, financial condition and results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 11; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->11<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Our products could infringe the intellectual property rights of others, which may
lead to litigation that could itself be costly, result in the payment of substantial damages or royalties, and prevent us from
using technology that is essential to our products.</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">We cannot guarantee that our products, manufacturing processes or other methods do not
infringe the patents or other intellectual property rights of third parties. Infringement and other intellectual property claims
and proceedings brought against us, whether successful or not, could result in substantial costs and harm our reputation. Such
claims and proceedings can also distract and divert our management and key personnel from other tasks important to the success
of our business. In addition, intellectual property litigation or claims could force us to do one or more of the following:</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td>cease selling or using any of our products that incorporate the asserted intellectual property, which would adversely affect
our revenues;</td></tr>                       <tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td>pay substantial damages for past use of the asserted intellectual property;</td></tr>                                                                                                                                                             <tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td>obtain a license from the holder of the asserted intellectual property, which license may not be available on reasonable terms,
if at all; and/or</td></tr>                           <tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in">&#8226;</td><td>redesign or rename, in the case of trademark claims, our products to avoid infringing the intellectual property rights of third
parties, which may be costly and time-consuming, even if possible.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">In the event of an adverse determination in an intellectual property suit or proceeding,
or our failure to license essential technology, our sales could be harmed and our costs could increase, which could materially
adversely affect our business, financial condition and results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>We may lose business if our customers shift their manufacturing offshore.</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">Historically, geography has been a large factor in the packaging business. Manufacturing
and other companies shipping products typically buy packaging from companies that are relatively close to their manufacturing facilities
to increase shipping efficiency and decrease costs. As many U.S. companies move their manufacturing operations overseas, particularly
to Asia and Mexico, the associated packaging business often follows. We have lost customers in the past and may lose customers
again in the future as a result of customers moving their manufacturing facilities offshore, then hiring our competitors that operate
packaging-production facilities perceived to be more territorially advantageous. As a result, our sales may suffer, which could
have a material adverse effect upon our business, financial condition and results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Reductions in the availability of energy supplies or an increase in energy costs may
increase our operating costs.</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">We use electricity and natural gas at our manufacturing facilities to operate our equipment.
Over the past several years, prices for electricity and natural gas have fluctuated significantly. An outbreak or escalation of
hostilities between the United States and any foreign power, or a natural disaster, could result in a real or perceived shortage
of petroleum and/or natural gas, which could result in an increase in the cost of electricity or energy generally as well as an
increase in the cost of our raw materials, of which many are petroleum-based. In addition, increased energy costs negatively impact
our freight costs due to higher fuel prices. Future limitations on the availability or consumption of petroleum products and/or
an increase in energy costs, particularly electricity for plant operations, could have a material adverse effect upon our business,
financial condition and results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white"><b>As a public company, we need to comply with the reporting
obligations of the Securities Exchange Act of 1934, the Sarbanes-Oxley Act of 2002, and the Dodd-Frank Act of 2010, among other
laws and regulations. If we fail to comply with the reporting obligations of these laws or if we fail to maintain adequate internal
controls over financial reporting, our business, financial condition, and results of operations and investors&#8217; confidence
in us, could be materially and adversely affected.</b></p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">As a public company, we are required to comply with the periodic reporting obligations
of the Exchange Act, including preparing annual reports, quarterly reports and current reports. We are also subject to certain
of the provisions of the Sarbanes-Oxley and Dodd-Frank Acts which, among other things, require enhanced disclosure of business,
financial, compensation and governance information. Our failure to prepare and disclose this information in a timely manner could
subject us to penalties under federal securities laws, expose us to lawsuits, and restrict our ability to access financing. We
may identify areas requiring improvement with respect to our internal control over financial reporting, and we may be required
to design enhanced processes and controls to address issues identified. This could result in significant delays and cost to us
and require us to divert substantial resources, including management time, from other activities. If we fail to maintain the adequacy
of our internal controls, we may not be able to ensure that we can conclude on an ongoing basis that we have effective internal
control over financial reporting. Moreover, effective internal controls are necessary for us to produce reliable financial reports
and are important to help prevent fraud.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 12; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->12<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Restrictions in our credit facilities may limit our business and financial activities,
including our ability to obtain additional capital in the future. </b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">In February 2018, we entered into a Credit Agreement with Bank of America, N.A., which
provided for a $50&nbsp;million revolving credit facility and a $20 million term loan facility. This Credit Agreement contains
covenants imposing various restrictions on our business and financial activities. These restrictions may affect our ability to
operate our business and undertake certain financial activities and may limit our ability to take advantage of potential business
or financial opportunities as they arise. The restrictions these covenants place on us include limitations on our ability to incur
liens, incur indebtedness, make investments, dissolve or merge or consolidate with or into another entity, dispose of certain property,
and make restricted payments. The Credit Agreement also requires us to meet certain financial ratios, including a minimum fixed-charge
coverage ratio and a maximum total funded debt to EBITDA ratio. The breach of any of these covenants or restrictions could result
in a default under the Credit Agreement, which could have a material adverse impact to our business, financial condition and results
of operation.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">We are also exposed to the risk of increasing interest rates as our revolving credit
facility is at a variable interest rate. Any material changes in interest rates could result in higher interest expense and related
payments for us. We have entered into an interest rate swap agreement that modifies our variable interest rate exposure with regards
to the term loan by converting the term loan from a variable rate to a fixed rate in order to hedge against the possibility of
rising interest rates during the term of the loan.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Members of our board of directors and management who also are our stockholders exert
significant influence over us.</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0">Based on information made available to us, we believe that our executive officers, directors
and their affiliates collectively owned approximately 9.9% of our outstanding shares of common stock as of March 2, 2020. As a
result, those stockholders may, if acting together, control or exert substantial influence over actions requiring stockholders&#8217;
approval, including elections of our directors, amendments to our certificate of incorporation, mergers, sales of assets or other
business acquisitions or dispositions.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white"><b>Provisions of our corporate charter documents and Delaware
law  may dissuade potential acquirers, prevent the replacement or removal of our current management
and may thereby affect the price of our common stock. </b></p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white">The board of directors has the authority to issue up to 1,000,000
shares of preferred stock and to determine the price, rights, preferences, privileges, and restrictions, including voting rights
of those shares without any further vote or action by the stockholders. The rights of the holders of common stock will be subject
to, and may be adversely affected by, the rights of the holders of any preferred stock that may be issued in the future. The issuance
of preferred stock, while providing flexibility in connection with possible financings, acquisitions and other corporate purposes,
could have the effect of making it more difficult for a third party to acquire a majority of our outstanding voting stock. We have
no present plans to issue shares of preferred stock.</p>

<p style="font-size: 10pt; margin: 0pt 0; text-indent: 154.45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0; background-color: white">Further, certain provisions of our certificate of incorporation,
bylaws, and Delaware law could delay or make more difficult a merger, tender offer or proxy contest involving us or, for a third
party to acquire a majority of our outstanding voting common stock. These include provisions that classify our board of directors,
limit the ability of stockholders to take action by written consent, call special meetings, remove a director for cause, amend
the bylaws, or approve a merger with another company. In addition, our bylaws set forth advance notice procedures for stockholders
to nominate candidates for election as directors or to bring matters before an annual meeting of stockholders.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 13; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->13<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">We are subject to the provisions of Section 203 of the Delaware General Corporation Law
which prohibits a publicly-held Delaware corporation from engaging in a &#8220;business combination&#8221; with an &#8220;interested
stockholder&#8221; for a period of three years after the date of the transaction in which the person became an interested stockholder,
unless the business combination is approved in a prescribed manner. For purposes of Section 203, a &#8220;business combination&#8221;
includes a merger, asset sale or other transaction resulting in a financial benefit to the interested stockholder, and an &#8220;interested
stockholder&#8221; is a person who, either alone or together with affiliates and associates, owns (or within the past three years
did own) 15% or more of the corporation&#8217;s voting stock.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Regulations related to &#8220;conflict minerals&#8221; may cause us to incur additional
expenses and could limit the supply and increase the cost of certain metals used in manufacturing our products.</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">In 2012, the SEC adopted a rule requiring disclosures by public companies of specified
minerals, known as conflict minerals, that are necessary to the functionality or production of products manufactured or contracted
to be manufactured. The rule requires an annual disclosure report to be filed and requires companies to perform due diligence and
disclose and report whether or not such minerals originate from the Democratic Republic of Congo or an adjoining country. The rule could affect sourcing at competitive prices and availability in sufficient quantities of certain minerals used in the manufacture
of our products, including tantalum, tin, gold and tungsten. The number of suppliers who provide conflict-free minerals may be
limited. In addition, there may be material costs associated with complying with the disclosure requirements, such as costs related
to determining the source of certain minerals used in our products, as well as costs of possible changes to products, processes,
or sources of supply as a consequence of such verification activities. Since our supply chain is complex, we may not be able to
sufficiently verify the origins of the relevant minerals used in our products through the due diligence procedures that we undertake,
which may harm our reputation. In addition, we may encounter challenges to satisfy those customers who require that all of the
components of our products be certified as conflict-free, which could place us at a competitive disadvantage if we are unable to
do so.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Our operations could be disrupted by natural or human causes beyond our control</b>.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Our operations are subject to the risk of disruption by hurricanes, severe storms, floods
and other forms of severe weather, earthquakes and other natural disasters, accidents, fire, power shortages, geopolitical unrest,
war and other military action, terrorist attacks and other hostile acts, public health issues, epidemics or pandemics, and other
events, such as raw material or supply scarcity, that are beyond our control and the control of the third parties on which we depend.
Any of these catastrophic events, whether in the United States or abroad, may have a strong negative impact on the global economy,
our employees, facilities, suppliers, or customers, and could decrease demand for our products or our customers&rsquo; products,
create delays and inefficiencies in our supply chain and make it difficult or impossible for us to deliver products to our customers
in a timely manner. If there is a natural disaster or other serious disruption at any of our facilities, we may experience plant
shutdowns or periods of reduced production as a result of equipment failures, loss of power, delays in delivery of raw materials
or supplies, personnel absences, or extensive damage to any of our facilities, any of which could materially adversely affect our
business, financial condition or results of operations. In addition, our insurance coverage may not adequately compensate us for
losses incurred as a direct or indirect result of natural or other disasters.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">In December 2019 an outbreak of a novel strain of coronavirus (COVID-19) originated in
Wuhan, China, and has since spread to a number of other countries, including the United States. On March 11, 2020, the World Health
Organization characterized COVID-19 as a pandemic. In addition, as of the time of the filing of this Annual Report on Form 10-K,
several states in the United States, including Massachusetts, where we are headquartered, have declared states of emergency, and
several countries around the world, including the United States, have taken steps to restrict travel. While all of our operations
are located in the United States, we participate in a global supply chain, and the existence of a worldwide pandemic, the fear
associated with COVID-19, or any, pandemic, and the reactions of governments around the world in response to COVID-19, or any,
pandemic, to regulate the flow of labor and products and impede the travel of personnel, may impact our ability to conduct normal
business operations, which could adversely affect our results of operations and liquidity. Disruptions to our supply chain and
business operations, or to our suppliers&rsquo; or customers&rsquo; supply chains and business operations, could include disruptions
from the closure of supplier and manufacturer facilities, interruptions in the supply of raw materials and components, personnel
absences, or restrictions on the shipment of our or our suppliers&rsquo; or customers&rsquo; products, any of which could have
adverse ripple effects on our manufacturing output and delivery schedule. If we need to close any of our facilities or a critical
number of our employees become too ill to work, our production ability could be materially adversely affected in a rapid manner.
Similarly, if our customers experience adverse business consequences due to COVID-19, or any other, pandemic, demand for our products
could also be materially adversely affected in a rapid manner. Global health concerns, such as COVID-19, could also result in social,
economic, and labor instability in the countries and localities in which we or our suppliers and customers operate. Any of these
uncertainties could have a material adverse effect on our business, financial condition or results of operations. In addition,
a catastrophic event that results in the destruction or disruption of our data centers or our critical business or information
technology systems would severely affect our ability to conduct normal business operations and, as a result, our operating results
would be adversely affected.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 14; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->14<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 1B.</b></td><td><b>UNRESOLVED STAFF COMMENTS.</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><font style="font-weight: normal">None.</font></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 2.</b></td><td><b>PROPERTIES</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The following table presents certain information relating to each of the Company&#8217;s
design and manufacturing properties:</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: bottom">
    <td style="width: 23%; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Location</font></td>
    <td style="width: 12%; border-bottom: Black 1pt solid">
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0">Square</p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0">Feet</p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p></td>
    <td style="width: 25%; border-bottom: Black 1pt solid">
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0">Lease</p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0">Expiration Date</p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p></td>
    <td style="width: 40%; border-bottom: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Principal Use</font></td></tr>
<tr style="vertical-align: top; background-color: rgb(204,238,255)">
    <td><font style="font-size: 10pt">Georgetown, Massachusetts</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">57,600</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Fabrication, molding, test lab, clean room and engineering </font></td></tr>
<tr style="vertical-align: top; background-color: White">
    <td><font style="font-size: 10pt">Newburyport, Massachusetts</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">183,000</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned </font></td>
    <td><font style="font-size: 10pt">Headquarters, fabrication, molding, tooling, test lab, clean room, warehousing and engineering</font></td></tr>
<tr style="vertical-align: top; background-color: rgb(204,238,255)">
    <td><font style="font-size: 10pt">Huntsville, Alabama</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">9,000</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">6/30/2021</font></td>
    <td><font style="font-size: 10pt">Engineering, design and fabrication </font></td></tr>
<tr style="vertical-align: top; background-color: White">
    <td><font style="font-size: 10pt">Grand Rapids, Michigan</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">255,260</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Fabrication, molding, warehousing and engineering </font></td></tr>
<tr style="vertical-align: top; background-color: rgb(204,238,255)">
    <td><font style="font-size: 10pt">Rancho Dominguez, California</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">56,000</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">11/14/2022</font></td>
    <td><font style="font-size: 10pt">Fabrication, molding and engineering </font></td></tr>
<tr style="vertical-align: top; background-color: White">
    <td><font style="font-size: 10pt">Denver, Colorado</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">18,270</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Fabrication, molding and engineering </font></td></tr>
<tr style="vertical-align: top; background-color: rgb(204,238,255)">
    <td><font style="font-size: 10pt">Denver, Colorado</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">28,383</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Fabrication, molding and engineering </font></td></tr>
<tr style="vertical-align: top; background-color: White">
    <td><font style="font-size: 10pt">Kissimmee, Florida</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">49,400</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Fabrication, molding, test lab and engineering</font></td></tr>
<tr style="vertical-align: top; background-color: rgb(204,238,255)">
    <td><font style="font-size: 10pt">El Paso, Texas</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">127,730</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Warehousing, fabrication and molded fiber operations</font></td></tr>
<tr style="vertical-align: top; background-color: White">
    <td><font style="font-size: 10pt">Clinton, Iowa</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">60,000</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Molded fiber operations </font></td></tr>
<tr style="vertical-align: top; background-color: rgb(204,238,255)">
    <td><font style="font-size: 10pt">Clinton, Iowa</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">62,000</font></td>
    <td style="text-align: center"><font style="font-size: 10pt">Company Owned</font></td>
    <td><font style="font-size: 10pt">Molded fiber operations</font></td></tr>
<tr style="vertical-align: top; background-color: White">
    <td><font style="font-size: 10pt">Chicopee, Massachusetts</font></td>
    <td style="text-align: right"><font style="font-size: 10pt">103,792</font></td>
    <td>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0">1/31/23</p>
        <p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p></td>
    <td><font style="font-size: 10pt">Fabrication, molding, clean room and engineering</font></td></tr>
</table>
<p style="font-size: 10pt; margin: 0pt 0"><b></b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 3.</b></td><td><b>LEGAL PROCEEDINGS</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">From time to time, the Company may be a party to various suits, claims and complaints
arising in the ordinary course of business. In the opinion of management of the Company, these suits, claims and complaints should
not result in final judgments or settlements that, in the aggregate, would have a material adverse effect on the Company&#8217;s
financial condition or results of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 4.</b></td><td><b>MINE SAFETY DISCLOSURES</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Not applicable.</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><font style="text-transform: uppercase"><b><u>PART II</u></b></font></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 5.</b></td><td><b>MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS, AND ISSUER PURCHASES OF EQUITY SECURITIES</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Market Price</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s common stock is listed on the NASDAQ Capital Market under the symbol
&#8220;UFPT&#8221;. The following table sets forth the range of high and low quotations for the common stock as reported by NASDAQ
for the quarterly periods from January 1, 2018 to December 31, 2019:</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 15; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->15<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Year Ended December 31, 2018</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">High</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">Low</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left; padding-left: 33.85pt">First Quarter</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">31.30</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">26.05</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 33.85pt">Second Quarter</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">34.00</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">29.00</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 33.85pt">Third Quarter</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">37.25</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30.58</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 33.85pt">Fourth Quarter</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">39.98</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">28.25</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Year Ended December 31, 2019</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">High</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">Low</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left; padding-left: 33.85pt">First Quarter</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">37.58</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">27.80</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 33.85pt">Second Quarter</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">42.87</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">34.05</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-left: 33.85pt">Third Quarter</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">46.42</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">38.00</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 33.85pt">Fourth Quarter</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">50.00</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">38.22</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Number of Stockholders</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">As of March 5, 2020, there were 78 holders of record of the Company&#8217;s common stock.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Since many of the shares are held by brokers and other institutions on behalf of stockholders,
the Company is unable to estimate the total number of beneficial stockholders represented by these holders of record.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Dividends</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company did not pay any dividends in 2019 or 2018. The Company presently intends
to retain all its earnings to provide funds for the operation of its business and strategic acquisitions, although it would consider
paying cash dividends in the future. Any decision to pay dividends will be at the discretion of the Company&#8217;s board of directors
and will depend upon the Company&#8217;s operating results, strategic plans, capital requirements, financial condition, provisions
of the Company&#8217;s borrowing arrangements, applicable law and other factors the Company&#8217;s board of directors considers
relevant.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Issuer Purchases of Equity Securities</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">On June 16, 2015, the Company issued a press release announcing that its Board of Directors
authorized the repurchase of up to $10.0 million of the Company&#8217;s outstanding common stock. There was no share repurchase
activity for the years ended December 31, 2019, 2018 and 2017. During the year ended December 31, 2015, the Company repurchased
29,559 shares of common stock at a cost of approximately $587 thousand.&nbsp; At December 31, 2019, approximately $9.4 million
was available for future repurchases of the Company's common stock under this authorization.</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 6.</b></td><td><b>SELECTED FINANCIAL DATA</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The following table summarizes the Company&#8217;s consolidated financial data for the
periods presented. You should read the following financial information together with the information under &#8220;Management&#8217;s
Discussion and Analysis of Financial Condition and Results of Operations&#8221; and the Company&#8217;s consolidated financial
statements and the notes to those financial statements appearing elsewhere in this Report. The selected statements of income data
for the years ended December 31, 2019, 2018 and 2017, and the selected balance sheet data as of December 31, 2019 and 2018, are
derived from our audited consolidated financial statements, which are included elsewhere in this Report. The selected statements
of income data for the years ended December&nbsp;31, 2016 and 2015, and the selected balance sheet data at December 31, 2017, 2016
and 2015 are derived from our audited consolidated financial statements not included in this Report.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 16; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->16<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Selected Consolidated Financial Data:</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="19" style="font-size: 10pt; font-weight: bold; text-align: center">Years Ended December 31</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="19" style="font-size: 10pt; text-align: center">(in thousands, except per share data)</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold">Consolidated Statements of Income data</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2016</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2015</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; width: 35%; font-size: 10pt; text-align: left">Net sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">198,381</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">190,455</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">147,843</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">146,132</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">138,850</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Gross profit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">53,959</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">48,308</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">35,487</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">34,650</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">37,454</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Operating income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">24,708</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">19,612</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,693</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">12,237</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,714</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Net income from consolidated operations<br></td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">19,750</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">14,311</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">9,210</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,970</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,593</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Diluted earnings per common share</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2.63</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.93</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.26</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.10</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.05</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-indent: 0pt; font-size: 10pt; text-align: left">Weighted average number of diluted common shares outstanding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,516</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,430</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,337</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,275</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,206</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="19" style="font-size: 10pt; font-weight: bold; text-align: center">As of December 31</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="19" style="font-size: 10pt; text-align: center">(in thousands)</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold">Consolidated Balance Sheets data</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2016</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2015</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-indent: 0pt; font-size: 10pt; text-align: left; width: 35%">Working capital</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">36,942</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">34,968</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">65,131</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">60,291</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">52,620</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-indent: 0pt; font-size: 10pt; text-align: left">Total assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">188,758</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">189,598</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">138,207</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">127,934</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">119,635</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-indent: 0pt; font-size: 10pt; text-align: left">Current installments of long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,857</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">856</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,011</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-indent: 0pt; font-size: 10pt; text-align: left">Long-term debt, excluding current installments</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">22,286</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">859</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 10pt; text-indent: 0pt; font-size: 10pt; text-align: left">Total liabilities</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">26,767</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">49,141</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">14,495</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">14,881</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">16,063</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 10pt; text-indent: 0pt; font-size: 10pt; text-align: left">Total stockholders' equity</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">161,991</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">140,457</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">123,712</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">113,053</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">103,572</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 7.</b></td><td><b>MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND&nbsp;RESULTS OF OPERATIONS</b></td></tr></table>

<p style="margin: 0pt 0; font-size: 10pt; font-weight: bold">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; font-weight: bold">Overview</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company is an innovative designer and custom manufacturer of components, subassemblies,
products and packaging utilizing highly specialized foams, films, and plastics primarily for the medical market. The Company manufactures
its products by converting raw materials using laminating, molding, radio frequency and impulse welding and fabricating manufacturing
techniques. The Company is diversified by also providing highly engineered products and components to customers in the aerospace
and defense, automotive, consumer, electronics and industrial markets. The Company consists of a single operating and reportable
segment.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Sales for the Company for the year ended December 31, 2019 grew 4.2% to $198.4 million
from $190.5 million for the year ended December 31, 2018 largely due to strong growth in sales to customers in the medical market.
Streamlined manufacturing operations and a better mix of business enabled the Company to improve gross margins to 27.2% for the
year ended December 31, 2019, from 25.4% in 2018. Operating income and net income for the year ended December 31, 2019 grew by
26.0% and 38.0%, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s current strategy includes further organic growth and growth through
strategic acquisitions.</p>

<p style="margin: 0pt 0; font-size: 10pt; font-weight: bold">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; font-weight: bold"></p>

<!-- Field: Page; Sequence: 17; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->17<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt; font-weight: bold">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; font-weight: bold">Results of Operations</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The following table sets forth, for the years indicated, the percentage of revenues represented
by the items as shown in the Company&#8217;s Consolidated Statements of Income:</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left">Net sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">100.0</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">100.0</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">100.0</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt">Cost of sales</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">72.8</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">74.6</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">76.0</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Gross profit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">27.2</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">25.4</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">24.0</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Selling, general, and administrative expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">14.7</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">14.5</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">16.0</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Acquisition costs</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.0</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.6</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.0</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restructuring costs</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">0.0</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">0.0</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">0.0</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Operating income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12.5</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">10.3</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8.0</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Total other expense (income)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">0.5</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">0.7</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-0.1</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Income before taxes</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12.0</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">9.6</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8.1</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Income tax expense</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2.0</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2.1</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1.9</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Net income from consolidated operations</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">10.0</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7.5</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">6.2</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td></tr>
</table>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>2019 Compared to 2018</b></p>

<p style="font-size: 10pt; margin: 0pt 0; color: #548DD4">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Sales</i></p>

<p style="font-size: 10pt; margin: 0pt 0; color: #548DD4">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Net sales increased 4.2% to $198.4 million for the year ended December 31, 2019 from
net sales of $190.5 million in 2018. The increase in sales was primarily due to increased sales to customers in the medical, and
aerospace and defense markets of 16.9%, and 5.0%, respectively. These increases were partially offset by a collective decline in
sales to the consumer, electronics, and industrial markets of 24.1%. The increase in sales to customers in the medical market was
primarily due to strong sales at Dielectrics (including one additional month of sales of $3.1 million) as well as increased demand
from legacy UFP medical customers. The increased demand for sales to customers in the aerospace &amp; defense market is due to
increased government spending. The collective decline in sales to customers in the consumer, electronics and industrial markets
was primarily due to decreased demand for molded fiber packaging.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Gross Profit</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Gross profit as a percentage of sales (&#8220;Gross Margin&#8221;) increased to 27.2%
for the year ended December&nbsp;31, 2019, from 25.4% in 2018. As a percentage of sales, material and direct labor costs collectively
decreased approximately 0.5%, while overhead decreased approximately 1.3%. The decrease in collective material and labor costs
as a percentage of sales is primarily due to gains in manufacturing efficiencies resulting from continuous improvement initiatives
and an improvement in the overall book of business. The decline in overhead as a percentage of sales was primarily due to leveraging
fixed overhead costs against increased sales as well as targeted cost cuts.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Selling, General and Administrative Expenses</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Selling, General, and Administrative Expenses (&#8220;SG&amp;A&#8221;) increased approximately
5.8% to $29.3 million for the year ended December 31, 2019, from $27.7 million in 2018. As a percentage of sales, SG&amp;A increased
to 14.7% in 2019, from 14.5% in 2018. The increase in SG&amp;A is primarily due to one extra month of operations at Dielectrics
as well as compensation increases and new strategic management hires at the Company&#8217;s plants.</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Interest Income and Expense</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company had net interest expense of approximately $0.7 million and $1.3 million for
the years ended December 31, 2019 and 2018, respectively. The decrease in net interest expense was primarily due to lower debt
levels.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Income Taxes</i></p>

<p style="font-size: 10pt; margin: 0pt 0"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0">The Company recorded income tax expense, as a percentage of income before income tax
expense, of 16.5% for the year ended December 31, 2019 compared to 22.2% for the same period in 2018. The decline in the Company&#8217;s
effective tax rate for the year ended December 31, 2019, was largely due to a significant increase in the amount of business tax
credits earned in its federal and state 2018 tax returns due, in part, to qualifying research expenses at Dielectrics.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 18; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->18<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company notes the potential for volatility in its effective tax rate, as any windfall
or shortfall tax benefits related to its share-based compensation plans will be recorded directly into income tax expense.</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>2018 Compared to 2017</b></p>

<p style="font-size: 10pt; margin: 0pt 0; color: #548DD4">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Sales</i></p>

<p style="font-size: 10pt; margin: 0pt 0; color: #548DD4">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Net sales increased 28.8% to $190.5 million for the year ended December 31, 2018 from
net sales of $147.8 million in 2017. The increase in sales was primarily due to Dielectric&#8217;s sales of approximately $36.2
million, which were all in the medical market. On a market basis, sales to customers in the medical, aerospace and defense and
consumer markets grew 57.3%, 14.0% and 17.2%, respectively, while sales to customers in the automotive market declined 13.4%. The
increase in sales to customers in the medical market was primarily due to sales by Dielectrics as well as a 5.8% increase in demand
from the Company&#8217;s legacy medical customers. The increase in sales to customers in the aerospace and defense market was largely
due to a general uptick in government contract-based orders. The increase in sales to customers in the consumer market was primarily
due to sales of molded fiber protective packaging to a new customer. The decline in sales to customers in the automotive market
was primarily due to the phase-out of the automotive door panel program for Mercedes-Benz.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Gross Profit</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Gross profit as a percentage of sales (&#8220;Gross Margin&#8221;) increased to 25.4%
for the year ended December&nbsp;31, 2018, from 24.0% in 2017. As a percentage of sales, material and direct labor costs collectively
decreased approximately 0.6%, while overhead decreased approximately 0.8%. The decrease in material and direct labor costs as a
percentage of sales was primarily due to increased manufacturing efficiencies resulting from continuous improvement initiatives
as well as strategic price increases. The decrease in overhead was primarily due to the increase in sales on fixed overhead costs
partially offset by the impact on overhead of rising health care costs.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Selling, General and Administrative Expenses</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Selling, General, and Administrative Expenses (&#8220;SG&amp;A&#8221;) increased approximately
16.6% to $27.7 million for the year ended December 31, 2018, from $23.7 million in 2017. As a percentage of sales, SG&amp;A decreased
to 14.5% in 2018 from 16.0% in 2017. The increase in SG&amp;A for the year ended December 31, 2018 is due to approximately $2.6
million in SG&amp;A expenses from Dielectrics as well as higher health care costs. The decrease in SG&amp;A as a percentage of
sales is primarily due to lower SG&amp;A as a percentage of sales at Dielectrics as well as specific initiatives to reduce costs.</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Acquisition Costs</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company incurred approximately $1.1 million in costs associated with the Dielectrics
acquisition which were charged to expense for the ended December 31, 2018. These costs were primarily for investment banking and
legal fees and are reflected on the face of the income statement.</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Interest Income and Expense</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company had net interest expense of approximately $1.3 million and net interest income
of approximately $0.2 million for the years ended December 31, 2018 and 2017, respectively. The increase in net interest expense
is primarily due to interest paid on the debt incurred to finance the Dielectrics acquisition.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Income Taxes</i></p>

<p style="font-size: 10pt; margin: 0pt 0"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0">The Company recorded income tax expense, as a percentage of income before income tax
expense, of 22.2% for the year ended December 31, 2018 compared to 22.3% for the same period in 2017.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 19; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->19<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Liquidity and Capital Resources</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company generally funds its operating expenses, capital requirements, and growth
plan through internally generated cash and bank credit facilities.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Cash Flows</i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Net cash provided by operations for the year ended December 31, 2019 was approximately
$31.2&nbsp;million and was primarily a result of net income generated of approximately $19.7 million, depreciation and amortization
of approximately $8.2 million, share-based compensation of approximately $1.6 million, an increase in deferred taxes of approximately
$0.8 million, a decrease in inventory of approximately $1.3 million, a decrease in refundable income taxes of approximately $2.0
million, and an increase in other long term liabilities of approximately $0.3 million due primarily to a change in the fair value
of the interest rate swap. These cash inflows and adjustments to income were partially offset by an increase in accounts receivable
of approximately $0.3 million and an increase in accounts payable and accrued expenses of approximately $2.4 million due to the
timing of vendor payments in the ordinary course of business.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Net cash used in investing activities during the year ended December 31, 2019 was approximately
$5.8 million and was primarily the result of additions of manufacturing machinery and equipment and various building improvements
across the Company.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Net cash used for financing activities was approximately $25.0 million for the year ended
December 31, 2019, resulting from repayments on the Company&#8217;s credit facility of approximately $25.2 million and payments
of statutory withholding for stock options exercised and restricted stock units vested of approximately $0.5 million, offset by
net proceeds received upon stock option exercises of approximately $0.7 million.</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"><i>Outstanding and Available Debt</i></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">On February 1, 2018, the Company, as the borrower, entered into an unsecured $70 million
Amended and Restated Credit Agreement (the &#8220;Amended and Restated Credit Agreement&#8221;) with certain of the Company&#8217;s
subsidiaries (the &#8220;Subsidiary Guarantors&#8221;) and Bank of America, N.A., in its capacity as the initial lender, Administrative
Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit
Agreement amends and restates the Company&#8217;s prior credit agreement.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The credit facilities under the Amended and Restated Credit Agreement (the &#8220;Amended
and Restated Credit Facilities&#8221;) consist of a $20 million unsecured term loan to the Company and an unsecured revolving credit
facility, under which the Company may borrow up to $50 million.&nbsp; The Amended and Restated Credit Facilities mature on February&nbsp;1,
2023.&nbsp; The proceeds of the Amended and Restated Credit Agreement may be used for general corporate purposes, as well as permitted
acquisitions. The Company&#8217;s obligations under the Amended and Restated Credit Agreement are guaranteed by the Subsidiary
Guarantors.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Amended and Restated Credit Facilities call for interest of LIBOR plus a margin that
ranges from 1.0% to 1.5% or, at the discretion of the Company, the bank&#8217;s prime rate less a margin that ranges from 0.25%
to zero. In both cases the applicable margin is dependent upon Company performance. Under the Amended and Restated Credit Agreement,
the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial
covenant.&nbsp; The Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including
restrictions on certain payments, permitted indebtedness and permitted investments.&nbsp; As of December 31, 2019, there were $0.7
million in standby letters of credit outstanding, drawable as a financial guarantee on worker&#8217;s compensation insurance policies.
As of December 31, 2019, the applicable interest rate was approximately 2.8% and the Company was in compliance with all covenants
under the Amended and Restated Credit Agreement.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 20; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->20<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Long-term debt consists of the following (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left">Revolving credit facility</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">-</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">8,000</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">17,143</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Total long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">25,143</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Current portion</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,857</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Long-term debt, excluding current portion</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">22,286</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Derivative Financial Instruments</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company used interest-rate-related derivative instruments to manage its exposure
related to changes in interest rates on certain of its variable-rate debt instruments. The Company does not enter into derivative
instruments for any purpose other than cash flow hedging. Derivative financial instruments expose the Company to credit risk and
market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract. When the fair
value of a derivative contract is positive, the counterparty owes the Company, creating credit risk for the Company. When the fair
value of a derivative contract is negative, the Company owes the counterparty and, therefore, in these circumstances the Company
is not exposed to the counterparty&#8217;s credit risk. The Company minimizes counterparty credit risk in derivative instruments
by entering into transactions with carefully selected major financial institutions based upon their credit profile. Market risk
is the adverse effect on the value of a derivative instrument that results from a change in interest rates.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company assesses interest rate risk by continually identifying and monitoring
changes in interest rate exposures that may adversely impact expected future cash flows and by evaluating hedging
opportunities. The Company&#8217;s debt obligations exposed the Company to variability in interest payments due to changes in
interest rates. The Company believed that it was prudent to limit the variability of a portion of its interest payments. To
meet this objective, in connection with the Amended and Restated Credit Agreement, the Company entered into a $20 million,
5-year interest rate swap agreement under which the Company receives three-month LIBOR plus the applicable margin and pays a
2.7% fixed rate plus the applicable margin. The swap modified the Company&#8217;s interest rate exposure by converting the
term loan from a variable rate to a fixed rate in order to hedge against the possibility of rising interest rates during the
term of the loan. The notional amount was $14,285,712 at December 31, 2019. The fair value of the swap as of December 31,
2019 was approximately $(325) thousand and is included in other liabilities. Changes in the fair value of the swap are
recorded in other income/expense and resulted in expense of approximately $388 thousand and income of $64 thousand during the
years ended December 31, 2019 and 2018, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">During the fourth quarter of 2019, the Company paid the remaining balance of the term
loan in its entirety. As a result, there is no longer underlying debt to hedge against with the swap. The changes in the fair value
of the swap will continue to be accounted for as a financial instrument until the sooner of the time that the Company elects to
cancel it or until its maturity.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i>Future Liquidity</i></p>

<p style="font-size: 10pt; margin: 0pt 0"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0">The Company requires cash to pay its operating expenses, purchase capital equipment,
and to service its contractual obligations. The Company&#8217;s principal sources of funds are its operations and its amended and
restated credit facility. The Company generated cash of approximately $31.2 million in operations during the year ended December
31, 2019; however, the Company&nbsp;cannot guarantee that its operations will generate cash in future periods. The Company&#8217;s
longer-term liquidity is contingent upon future operating performance.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">Throughout fiscal 2020, the Company plans to continue to add capacity to enhance operating
efficiencies in its manufacturing plants. The Company may consider additional acquisitions of companies, technologies, or products
that are complementary to its business. The Company believes that its existing resources, including its revolving credit facility,
together with cash expected to be generated from operations and additional bank borrowings, will be sufficient to fund its cash
flow requirements, including capital asset acquisitions, through the next twelve months.</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 21; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->21<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">The Company may also require additional capital in the future to fund capital expenditures,
acquisitions or other investments. These capital requirements could be substantial. The Company anticipates that any future expansion
of its business will be financed through existing resources, cash flow from operations, the Company's revolving credit facility,
or other new financing. The Company cannot guarantee that it will be able to meet existing financial covenants or obtain other
new financing on favorable terms, if at all. The Company's liquidity will be impacted to the extent additional stock repurchases
are made under the Company's stock repurchase program.</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"><i>Stock Repurchase Program</i></p>

<p style="margin: 0pt 0; font-size: 10pt"><i>&nbsp;</i></p>

<p style="margin: 0pt 0; font-size: 10pt">The Company accounts for treasury stock under the cost method, using the first-in, first-out
flow assumption, and includes treasury stock as a component of stockholders&#8217; equity. On June 16, 2015, the Company announced
that its Board of Directors authorized the repurchase of up to $10.0 million of the Company&#8217;s outstanding common stock. Under
the program, the Company is authorized to repurchase shares through Rule 10b5-1 plans, open market purchases, privately negotiated
transactions, block purchases or otherwise in accordance with applicable federal securities laws, including Rule 10b-18 of the
Securities Exchange Act of 1934. The stock repurchase program will end upon the earlier of the date on which the plan is terminated
by the Board or when all authorized repurchases are completed. The timing and amount of stock repurchases, if any, will be determined
based upon our evaluation of market conditions and other factors. The stock repurchase program may be suspended, modified or discontinued
at any time, and the Company has no obligation to repurchase any amount of its common stock under the program. There were no share
repurchases during the years ended December 31, 2019, 2018 and 2017. At December 31, 2019, approximately $9.4 million was available
for future repurchases of the Company&#8217;s common stock under this authorization.</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"><b>Contractual Obligations</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The following table summarizes the Company&#8217;s contractual obligations at December
31, 2019:</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="15" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">Payment Due By Period (in thousands) (1)</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">Less than</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">1-3</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">3-5</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">More than</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Total</td><td style="border-bottom: Black 1pt solid; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">1 Year</td><td style="border-bottom: Black 1pt solid; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Years</td><td style="border-bottom: Black 1pt solid; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Years</td><td style="border-bottom: Black 1pt solid; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">5 Years</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 1pt; width: 35%; font-size: 10pt; text-align: left">Operating leases (2)</td><td style="padding-bottom: 1pt; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 10%; font-size: 10pt; text-align: right">3,284</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left; width: 1%">&nbsp;</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 10%; font-size: 10pt; text-align: right">1,173</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 10%; font-size: 10pt; text-align: right">2,075</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 10%; font-size: 10pt; text-align: right">36</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; width: 10%; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 2.5pt; text-indent: 10pt; font-size: 10pt">Total (3)</td><td style="padding-bottom: 2.5pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">3,284</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,173</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,075</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">36</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in"><font style="font-size: 8pt">(1)</font></td><td><font style="font-size: 8pt">The amounts set forth in the
                                         &#8220;Less than 1 year&#8221; column represents amounts to be paid in 2020, the &#8220;1-3
                                         years&#8221; column represents amounts to be paid in 2021 and 2022, the &#8220;3-5 Years&#8221;
                                         column represents amounts to be paid in 2023 and 2024 and the &#8220;More than 5 Years&#8221;
                                         column represents amounts to be paid after 2024.</font></td></tr></table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in"><font style="font-size: 8pt">(2)</font></td><td><font style="font-size: 8pt">Represents scheduled payments
                                         for non-cancelable building lease commitments. See Note 15 to the accompanying Consolidated
                                         Financial Statements.</font></td></tr></table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.25in"></td><td style="width: 0.25in"><font style="font-size: 8pt">(3)</font></td><td><font style="font-size: 8pt">In addition, the Company incurs
                                         various purchase obligations in the ordinary course of business which relate to commitments
                                         to purchase materials, supplies, machinery and tooling.</font></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company requires cash to pay its operating expenses, purchase capital equipment,
and to service the obligations listed above. The Company&#8217;s principal sources of funds are its operations and its revolving
credit facility. Although the Company generated cash from operations in the year ended December 31, 2019, it cannot guarantee that
its operations will generate cash in future periods. Subject to the Risk Factors set forth in Part I, Item 1A of this Report and
the general disclaimers set forth in our Special Note Regarding Forward-Looking Statements at the outset of this Report, the Company
believes that cash flow from operations will provide it with sufficient funds in order to fund its expected operations over the
next twelve months.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company does not believe inflation has had a material impact on its results of operations
in the last three years.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Off-Balance-Sheet Arrangements</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">In addition to operating leases, the Company&#8217;s off-balance-sheet arrangements include
standby letters of credit which are included in the Company&#8217;s revolving credit facility. As of December 31, 2019, there was
approximately $0.7 million in standby letters of credit drawable as a financial guarantee on worker&#8217;s compensation insurance
policies.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 22; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->22<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Critical Accounting Policies</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The preparation of consolidated financial statements requires the Company to make estimates
and judgments that affect the reported amounts of assets, liabilities, revenues, and expenses, and related disclosure of contingent
assets and liabilities. On an ongoing basis, the Company evaluates its estimates, including those related to product returns, bad
debts, inventories, intangible assets, income taxes, warranty obligations, restructuring charges, contingencies, and litigation.
The Company bases its estimates on historical experience and on various other assumptions believed to be reasonable under the circumstances,
including current and anticipated worldwide economic conditions, both in general and specifically in relation to the packaging
and component product industries, the results of which form the basis for making judgments about the carrying values of assets
and liabilities that are not readily apparent from other sources. Actual results may differ from these estimates under different
assumptions or conditions.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s significant accounting policies are described in Note 1 to the consolidated
financial statements included in Item 8 of this Report. The Company believes the following critical accounting policies necessitated
that significant judgments and estimates be used in the preparation of its consolidated financial statements.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company has reviewed these policies with its Audit Committee.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i><u>Revenue Recognition </u></i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></P>

<P STYLE="margin: 0pt 0; font-size: 10pt">Beginning in 2018, the Company recognizes revenue when a customer obtains
control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to
be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles
of ASC 606 which include (1) identifying the contract with a customer, (2) identifying separate performance obligations within
the contract, (3) determining the transaction price, (4) allocating the transaction price to the performance obligations, and (5)
recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes
revenue from the sale of tooling and machinery primarily upon customer acceptance, with the exception of certain tooling where
control does not transfer to the customer, resulting in revenue being recognized over the estimated time for which parts are produced
with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. The
Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer.
In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial.
Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction
price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms
and conditions of the sale not as performance obligations but rather as fulfillment costs. These activities are required to fulfill
the Company&rsquo;s promise to transfer the good and are expensed when revenue is recognized.</P>

<P STYLE="font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt">For the year 2017, prior to ASC 606, the Company recognized revenue at the time
of shipment when title and risk of loss have passed to the customer, persuasive evidence of an arrangement exists, performance
of its obligation is complete, its price to the buyer is fixed or determinable, and the Company is reasonably assured of collection.
Determination of these criteria, in some cases, requires management&rsquo;s judgment.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 45pt"></P>



<P STYLE="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i><u>Goodwill</u></i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">Goodwill is tested for impairment annually and will be tested for impairment between
annual tests if an event occurs or circumstances change that would indicate that the carrying amount may be impaired. Impairment
testing for goodwill is done at a reporting unit level. Reporting units are one level below the business segment level but can
be combined when reporting units within the same segment have similar economic characteristics. An impairment loss generally would
be recognized when the carrying amount of the reporting unit&#8217;s net assets exceeds the estimated fair value of the reporting
unit. The Company consists of a single reporting unit. The Company last performed &#8220;step 1&#8221; of the goodwill impairment
test as of December 31, 2018. In testing goodwill for impairment at December 31, 2018, the Company primarily utilized the guideline
public company (&#8220;GPC&#8221;) method under the market approach and the discounted cash flows method (&#8220;DCF&#8221;) under
the income approach to determine the fair value of the reporting unit for purposes of testing the reporting unit&#8217;s carrying
value of goodwill for impairment. The GPC method derives a value by generating a multiple of EBITDA through the comparison of the
Company to similar publicly traded companies. The DCF approach derives a value based on the present value of a series of estimated
future cash flows at the valuation date by the application of a discount rate, one that a prudent investor would require before
making an investment in our equity securities. The key assumptions used in our approach included:</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 23; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->23<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 9pt"></td><td style="width: 27pt">&#8226;</td><td>The reporting unit&#8217;s estimated financials and five-year projections of financial results, which were based on our strategic
plans and long-range forecasts. Sales growth rates represent estimates based on current and forecasted sales mix and market conditions.
The profit margins were projected based on historical margins, projected sales mix, current expense structure and anticipated expense
modifications.</td></tr>                        <tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 9pt"></td><td style="width: 27pt">&#8226;</td><td>The projected terminal value which reflects the total present value of projected cash flows beyond the last period in the DCF.
This value reflects a growth rate for the reporting unit, which is approximately the same growth rate of expected inflation into
perpetuity.</td></tr>                     <tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 9pt"></td><td style="width: 27pt">&#8226;</td><td>The discount rate determined using a Weighted Average Cost of Capital method (&#8220;WACC&#8221;), which considered market
and industry data as well as Company-specific risk factors.</td></tr>                                                                     <tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 9pt"></td><td style="width: 27pt">&#8226;</td><td>Selection of guideline public companies which are similar in size and market capitalization to each other and to the Company.</td></tr></table>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">As of December 31, 2018, based on our calculations under the above noted approach, the
fair value of the reporting unit significantly exceeded the carrying value of the reporting unit. In performing these calculations,
management used its most reasonable estimates of the key assumptions discussed above. If our actual operating results and/or the
key assumptions utilized in management&#8217;s calculations differ from our expectations, it is possible that a future impairment
charge may be necessary.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s annual impairment testing date is December 31. The Company performed
a qualitative assessment (&#8220;step 0&#8221;) as of December 31, 2019 and determined that it was more likely than not that the
fair value of its reporting unit exceeded its carrying amount. As a result, the Company is not required to proceed to a &#8220;step
1&#8221; impairment assessment. Factors considered included the 2018 step 1 analysis and the calculated excess fair value over
carrying amount, financial performance, forecasts and trends, market cap, regulatory and environmental issues, macro-economic conditions,
industry and market considerations, raw material costs and management stability.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i><u>Accounts Receivable</u></i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company periodically reviews the collectability of its accounts receivable. Provisions
are recorded for accounts that are potentially uncollectable. Determining adequate reserves for accounts receivable requires management&#8217;s
judgment. Conditions impacting the realizability of the Company&#8217;s receivables could cause actual asset write-offs to be materially
different than the reserved balances as of December 31, 2019.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i><u>Inventories</u></i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Inventories include material, labor, and manufacturing overhead and are valued at the
lower of cost or net realizable value. Cost is determined using the first-in, first-out (FIFO) method.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company periodically reviews the realizability of its inventory for potential excess
or obsolescence. Determining the net realizable value of inventory requires management&#8217;s judgment. Conditions impacting the
realizability of the Company&#8217;s inventory could cause actual asset write-offs to be materially different than the Company&#8217;s
current estimates as of December 31, 2019.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><i><u>Recent Accounting Pronouncements</u></i></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Refer to Note 1, &#8220;Summary of Significant Accounting Policies,&#8221; in the accompanying
notes to the consolidated financial statements for a discussion of recent accounting pronouncements.</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 7A.</b></td><td><b>QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK </b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The following discussion of the Company&#8217;s market risk includes &#8220;forward-looking
statements&#8221; that involve risk and uncertainties. Actual results could differ materially from those projected in the forward-looking
statements.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Market risk represents the risk of changes in value of a financial instrument caused
by fluctuations in interest rates, foreign exchange rates, and equity prices. At December 31, 2019, the Company&#8217;s cash and
cash equivalents consisted of bank accounts in U.S. dollars, and their valuation would not be affected by market risk. Interest
under the Company&#8217;s credit facility with Bank of America, N.A. calls for interest of LIBOR plus a margin that ranges from
1.0% to 1.5% or, at the discretion of the Company, the bank&#8217;s prime rate less a margin that ranges from 0.25% to zero. Therefore,
future operations could be affected by interest rate changes. As of December 31, 2019, the applicable interest rate was approximately
2.8%. The Company uses interest-rate-related derivative instruments to manage its exposure related to changes in interest rates.
In connection with this credit facility, the Company entered into a $20 million, 5-year interest rate swap agreement under which
the Company receives three-month LIBOR plus the applicable margin and pays a 2.7% fixed rate plus the applicable margin. The swap
modified the Company&#8217;s interest rate exposure by converting the term loan from a variable rate to a fixed rate in order to
hedge against the possibility of rising interest rates during the term of the loan.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 24; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->24<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 8.</b></td><td><b>FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The consolidated financial statements and supplementary data of the company are listed
under Part IV, Item&nbsp;15, in this Report.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 9.</b></td><td><b>CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">None.</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 9A.</b></td><td><b>CONTROLS AND PROCEDURES</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Disclosure Controls and Procedures</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company carried out an evaluation, under the supervision and with the participation
of its management, including the Chief Executive Officer and Chief Financial Officer, of the effectiveness of the design and operation
of the Company&#8217;s &#8220;disclosure controls and procedures&#8221; (as defined in Exchange Act Rule 13a-15(e) and 15d-15(e))
as of the end of the period covered by this Report (the &#8220;Evaluation Date&#8221;). Based upon that evaluation, the Chief Executive
Officer and Chief Financial Officer concluded that, as of the Evaluation Date, the Company&#8217;s disclosure controls and procedures
are effective to ensure that information required to be disclosed in the reports that the Company files or submits under the Exchange
Act is (i) recorded, processed, summarized and reported, within the time periods specified in the Securities and Exchange Commission&#8217;s
rules and forms and (ii) accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial
Officer, as appropriate to allow timely decisions regarding required disclosure.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Management&#8217;s Report on Internal Control Over Financial Reporting</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s management is responsible for establishing and maintaining an adequate
system of internal control over financial reporting, as defined in Exchange Act Rule 13a-15(f) and 15d-15(f). The Company&#8217;s
internal control over financial reporting is designed to provide reasonable assurance regarding the reliability of financial reporting
and the preparation of financial statements for external purposes in accordance with GAAP.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Because of its inherent limitations, internal control over financial reporting may not
prevent or detect misstatements. Therefore, even those systems determined to be effective can provide only reasonable assurance,
as opposed to absolute assurance, of achieving their internal control objectives.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Management conducted an assessment of the Company&#8217;s internal control over financial
reporting as of December 31, 2019, based on criteria established in the 2013 Internal Control &#8211; Integrated Framework issued
by the Committee of Sponsoring Organizations of the Treadway Commission (COSO). Based on the assessment, management concluded that,
as of December 31, 2019, the Company&#8217;s internal control over financial reporting is effective.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The Company&#8217;s internal control over financial reporting as of December 31, 2019,
has been audited by Grant Thornton LLP, an independent registered public accounting firm, who also audited the Company&#8217;s
consolidated financial statements. Grant Thornton&#8217;s attestation report on the Company&#8217;s internal control over financial
reporting is included herein.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 25; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->25<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">There was no change in the Company&#8217;s internal control over financial reporting
that occurred during the Company&#8217;s most recently completed fiscal quarter that has materially affected, or is reasonably
likely to materially affect, the Company&#8217;s internal control over financial reporting.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 9B.</b></td><td><b>OTHER INFORMATION</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">None.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><font style="text-transform: uppercase"><b><u>PART III</u></b></font></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 10.</b></td><td><b>DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The information required by this Item 10 is hereby incorporated by reference to the Company&#8217;s
definitive proxy statement to be filed by the Company within 120 days after the close of its fiscal year.</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 11.</b></td><td><b>EXECUTIVE COMPENSATION</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The information required by this Item 11 is hereby incorporated by reference to the Company&#8217;s
definitive proxy statement to be filed by the Company within 120 days after the close of its fiscal year.</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 12.</b></td><td style="padding-right: 49.5pt"><b>SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND&nbsp;MANAGEMENT AND RELATED STOCKHOLDER
MATTERS</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The information required by this Item 12 is hereby incorporated by reference to the Company&#8217;s
definitive proxy statement to be filed by the Company within 120 days after the close of its fiscal year.</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 13.</b></td><td style="padding-right: 49.5pt"><b>CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The information required by this Item 13 is hereby incorporated by reference to the Company&#8217;s
definitive proxy statement to be filed by the Company within 120 days after the close of its fiscal year.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 14.</b></td><td style="padding-right: 49.5pt"><b>PRINCIPAL ACCOUNTING FEES AND SERVICES</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The information required by this Item 14 is hereby incorporated by reference to the Company&#8217;s
definitive proxy statement to be filed by the Company within 120 days after the close of its fiscal year.</p>

<p style="font-size: 10pt; margin: 0pt 0"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0; font-size: 10pt"><font style="text-transform: uppercase"><b></b></font></p>

<!-- Field: Page; Sequence: 26; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->26<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt"><font style="text-transform: uppercase"><b></b></font></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><font style="text-transform: uppercase"><b><u>PART IV</u></b></font></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 15.</b></td><td style="padding-right: 49.5pt"><b>EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: top; text-align: left">
    <td style="width: 5%"><font style="font-size: 10pt">(a) (1)</font></td>
    <td style="width: 1%"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 78%"><font style="font-size: 10pt"><u>Financial Statements</u></font></td>
    <td style="width: 1%"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 15%"><font style="font-size: 10pt"><u>Page</u></font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_001"><font style="font-size: 10pt">Index to Consolidated Financial Statements and Financial Statement Schedule</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_001"><font style="font-size: 10pt">F-2</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_002"><font style="font-size: 10pt">Reports of Independent Registered Public Accounting Firm</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_002"><font style="font-size: 10pt">F-3</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_003"><font style="font-size: 10pt">Consolidated Balance Sheets as of December 31, 2019 and 2018</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_003"><font style="font-size: 10pt">F-5</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_004"><font style="font-size: 10pt">Consolidated Statements of Income for the years ended December 31, 2019, 2018 and 2017</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_004"><font style="font-size: 10pt">F-6</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_005"><font style="font-size: 10pt">Consolidated Statements of Stockholders&#8217; Equity for the years ended December&nbsp;31,
    2019, 2018 and 2017</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_005"><font style="font-size: 10pt">F-7</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_006"><font style="font-size: 10pt">Consolidated Statements of Cash Flows for the years ended December 31, 2019, 2018 and 2017</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_006"><font style="font-size: 10pt">F-8</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_007"><font style="font-size: 10pt">Notes to Consolidated Financial Statements</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_007"><font style="font-size: 10pt">F-9</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">(a) (2)</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt"><u>Financial Statement Schedule</u></font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_008"><font style="font-size: 10pt">Schedule II &#8211; Valuation and Qualifying Accounts</font></a></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><a href="#a_008"><font style="font-size: 10pt">F-30</font></a></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">All other schedules have been omitted because they are not required, not applicable, or
    the required information is otherwise included.</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td><font style="font-size: 10pt">(a) (3)</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">Exhibits</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 44.1pt 0pt 0.5in"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>Exhibit Index</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: top">
    <td style="width: 10%"><font style="font-size: 10pt"><u>Number</u></font></td>
    <td style="width: 90%"><font style="font-size: 10pt"><u>Description of Exhibit</u></font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465904014466/a04-5717_1ex3d01.htm"><font style="font-size: 10pt">3.01</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465904014466/a04-5717_1ex3d01.htm"><font style="font-size: 10pt">Certificate of Incorporation of the Company, as amended (incorporated by reference to Exhibit 3.01 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended March 31, 2004, filed with the SEC on May 15, 2004 (SEC File No. 001-12648)).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465909019501/a09-8420_1ex3d02.htm"><font style="font-size: 10pt">3.02</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465909019501/a09-8420_1ex3d02.htm"><font style="font-size: 10pt">Amended and Restated Certificate of Designation of Series&nbsp;A Junior Participating Preferred Stock of the Company (incorporated by reference to Exhibit 3.02 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on March 24, 2009 (SEC File No. 001-12648)).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465909019501/a09-8420_1ex3d03.htm"><font style="font-size: 10pt">3.03</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465909019501/a09-8420_1ex3d03.htm"><font style="font-size: 10pt">Amended and Restated Bylaws of the Company (incorporated by reference to Exhibit 3.03 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on March 24, 2009 (SEC File No. 001-12648)).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">4.01</font></td>
    <td><font style="font-size: 10pt">Specimen Certificate for shares of the Company&#8217;s Common Stock (incorporated by reference to Exhibit 4.01 to the Company&#8217;s Registration Statement on Form S-1, filed with the SEC on December 15, 1993) (filed in paper format).</font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465904014466/a04-5717_1ex3d01.htm"><font style="font-size: 10pt">4.02</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465904014466/a04-5717_1ex3d01.htm"><font style="font-size: 10pt">Description of Capital Stock (contained in the Certificate of Incorporation of the Company, as amended, filed as Exhibit 3.01 hereto).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">10.01</font></td>
    <td><font style="font-size: 10pt">Form of Indemnification Agreement for directors and officers of the Company (incorporated by reference to Exhibit 10.30 to the Company&#8217;s Registration Statement on Form S-1, filed with the SEC on December 15, 1993) (filed in paper format). # </font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465906074309/a06-21734_1ex10d41.htm"><font style="font-size: 10pt">10.02</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465906074309/a06-21734_1ex10d41.htm"><font style="font-size: 10pt">Executive Non-qualified Excess Plan (incorporated by reference to Exhibit 10.41 to the Company&#8217;s Quarterly Report on Form 10-Q for the three months ended September 30, 2006, filed with the SEC on November 13, 2006 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465907074758/a07-26575_1ex10d28.htm"><font style="font-size: 10pt">10.03</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465907074758/a07-26575_1ex10d28.htm"><font style="font-size: 10pt">Employment Agreement with R. Jeffrey Bailly dated October 8, 2007 (incorporated by reference to Exhibit 10.28 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on October 12, 2007 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465913040114/a13-8367_1ex10d66.htm"><font style="font-size: 10pt">10.04</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465913040114/a13-8367_1ex10d66.htm"><font style="font-size: 10pt">2009 Non-Employee Director Stock Incentive Plan (incorporated by reference to Exhibit 10.66 to the Company&#8217;s Quarterly Report on Form 10-Q for the quarter ended March 31, 2013, filed with the SEC on May 10, 2013 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
</table>

<p style="margin: 0">&nbsp;</p>

<p style="margin: 0"></p>

<!-- Field: Page; Sequence: 27; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->27<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt"><u>Number</u></font></td>
    <td><font style="font-size: 10pt"><u>Description of Exhibit</u></font></td></tr>
<tr style="vertical-align: top">
    <td style="width: 10%">&nbsp;</td>
    <td style="width: 90%">&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465911012958/a11-7465_1ex10d56.htm"><font style="font-size: 10pt">10.05</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465911012958/a11-7465_1ex10d56.htm"><font style="font-size: 10pt">Amendment No. 1 to Employment Agreement with R. Jeffrey Bailly (incorporated by reference to Exhibit 10.56 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on March 8, 2011 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465912076312/a12-19580_1ex10d61.htm"><font style="font-size: 10pt">10.06</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465912076312/a12-19580_1ex10d61.htm"><font style="font-size: 10pt">Facility Lease between the Company and Susana Property Co. (incorporated by reference to Exhibit 10.61 to the Company&#8217;s Quarterly Report on Form 10-Q for the period ended September 30, 2012, filed with the SEC on November 9, 2012 (SEC File No. 001-12648)).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465913013257/a13-5868_1ex10d62.htm"><font style="font-size: 10pt">10.07</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465913013257/a13-5868_1ex10d62.htm"><font style="font-size: 10pt">Amendment No. 2 to Employment Agreement with R. Jeffrey Bailly (incorporated by reference to Exhibit 10.62 to the Company&#8217;s Current Report on Form 8-K, filed with SEC on February 22, 2013 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465916100550/a16-5323_1ex10d1.htm"><font style="font-size: 10pt">10.08</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465916100550/a16-5323_1ex10d1.htm"><font style="font-size: 10pt">Form of 2016 CEO Stock Unit Award Agreement (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 26, 2016 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465916100550/a16-5323_1ex10d2.htm"><font style="font-size: 10pt">10.09</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000110465916100550/a16-5323_1ex10d2.htm"><font style="font-size: 10pt">Form of 2016 Stock Unit Award Agreement (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 26, 2016 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184317001162/exh_101.htm"><font style="font-size: 10pt">10.10</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184317001162/exh_101.htm"><font style="font-size: 10pt">Form of 2017 CEO Stock Unit Award Agreement (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 27, 2017 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184317001162/exh_102.htm"><font style="font-size: 10pt">10.11</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184317001162/exh_102.htm"><font style="font-size: 10pt">Form of 2017 Stock Unit Award Agreement (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 27, 2017 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318001514/exh_101.htm"><font style="font-size: 10pt">10.12</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318001514/exh_101.htm"><font style="font-size: 10pt">Form of 2018 CEO Stock Unit Award Agreement (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 28, 2018 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318001514/exh_102.htm"><font style="font-size: 10pt">10.13</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318001514/exh_102.htm"><font style="font-size: 10pt">Form of 2018 Stock Unit Award Agreement (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 28, 2018 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319001189/exh_101.htm"><font style="font-size: 10pt">10.14</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319001189/exh_101.htm"><font style="font-size: 10pt">Form of 2019 CEO Stock Unit Award Agreement (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 25, 2019 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319001189/exh_102.htm"><font style="font-size: 10pt">10.15</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319001189/exh_102.htm"><font style="font-size: 10pt">Form of 2019 Stock Unit Award Agreement (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 25, 2019 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<TR STYLE="vertical-align: top">
    <TD><P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319005371/exh_101.htm">10.16</A></P>


</TD>
    <TD><P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319005371/exh_101.htm">Form of 2019 Non-Qualified Stock Option Agreement under the 2009 Non-Employee Director Stock Incentive Plan (incorporated by reference to Exhibit 10.1 to the Company&rsquo;s Quarterly Report on Form 10-Q for the period ended June 30, 2019, filed with the SEC on August 9, 2019 (SEC File No. 001-12648)). #</A></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>



</TD></TR>
<TR STYLE="vertical-align: top">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
<TR STYLE="vertical-align: top">
    <TD><P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319005371/exh_102.htm">10.17</A></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>



</TD>
    <TD><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184319005371/exh_102.htm">Form of 2019 Stock Unit Award Agreement under the 2009 Non-Employee Director Stock Incentive Plan (incorporated by reference to Exhibit 10.2 to the Company&rsquo;s Quarterly Report on Form 10-Q for the period ended June 30, 2019, filed with the SEC on August 9, 2019 (SEC File No. 001-12648)). #</A></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"></P>



</TD></TR>
<TR STYLE="vertical-align: top">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184317004876/exh_101.htm"><font style="font-size: 10pt">10.18</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184317004876/exh_101.htm"><font style="font-size: 10pt">First Amendment to Facility Lease between the Company and Susana Property Co. dated July 6, 2012 (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Quarterly Report on Form 10-Q for the period ended June 30, 2017, filed with the SEC on August 9, 2017 (SEC File No. 001-12648)).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1019.htm"><font style="font-size: 10pt">10.19</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1019.htm"><font style="font-size: 10pt">Amended and Restated Credit and Guaranty Agreement, dated as of February 1, 2018 among the Company, the Guarantors from time to time party thereto and Bank of America, N.A., as Administrative Agent, Swing Line Lender, L/C Issuer, Sole Lead Arranger and Sole Book Manager (incorporated by reference to Exhibit 10.19 to the Company&#8217;s Annual Report on Form 10-K for the period ended December 31, 2017, filed with the SEC on March 16, 2018 (SEC File No. 001-12648)).</font></A></td>
    </tr>
</table>

<p style="margin: 0">&nbsp;</p>

<p style="margin: 0"></p>

<!-- Field: Page; Sequence: 28; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->28<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: top">
    <td style="width: 10%"><font style="font-size: 10pt"><u>Number</u></font></td>
    <td style="width: 90%"><font style="font-size: 10pt"><u>Description of Exhibit</u></font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1020.htm"><font style="font-size: 10pt">10.20</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1020.htm"><font style="font-size: 10pt">Stock Purchase Agreement, dated as of January 30, 2018, by and among the Company, the Sellers defined therein, Dielectrics and the Sellers&#8217; Representative (incorporated by reference to Exhibit 10.20 to the Company&#8217;s Annual Report on Form 10-K for the period ended December 31, 2017, filed with the SEC on March 16, 2018 (SEC File No. 001-12648)).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1021.htm"><font style="font-size: 10pt">10.21</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1021.htm"><font style="font-size: 10pt">Agreement for the Purchase and Sale of Personal Goodwill, dated as of January 30, 2018, by and among the Company and Eric C. Stahl (incorporated by reference to Exhibit 10.21 to the Company&#8217;s Annual Report on Form 10-K for the period ended December 31, 2017, filed with the SEC on March 16, 2018 (SEC File No. 001-12648)).</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td>
        <p style="font-size: 10pt; margin: 0pt 0"><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1022.htm">10.22</A></p>
        <p style="font-size: 10pt; margin: 0pt 0"></p></td>
    <td>
        <p style="font-size: 10pt; margin: 0pt 0"><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318002024/exh_1022.htm">Lease dated as of February 1, 2018, by and between Eric C. Stahl and the Company (incorporated by reference to Exhibit 10.22 to the Company&#8217;s Annual Report on Form 10-K for the period ended December 31, 2017, filed with the SEC on March 16, 2018 (SEC File No. 001-12648)).</A></p>
        <p style="font-size: 10pt; margin: 0pt 0"></p></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318003794/exh_103.htm">10.23</A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184318003794/exh_103.htm">Amended and Restated 2003 Incentive Plan (incorporated by reference to Exhibit 10.3 to
        the Company&#8217;s Quarterly Report on Form 10-Q for the period ended March 31, 2018, filed with the SEC on May 10, 2018 (SEC
        File No. 001-12648))#</A></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_101.htm"><font style="font-size: 10pt">10.24</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_101.htm"><font style="font-size: 10pt">Form of 2020 CEO Stock Unit Award Agreement (incorporated by reference to Exhibit 10.1 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 28, 2020 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_102.htm"><font style="font-size: 10pt">10.25</font></A></td>
    <td><A HREF="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_102.htm"><font style="font-size: 10pt">Form of 2020 Stock Unit Award Agreement (incorporated by reference to Exhibit 10.2 to the Company&#8217;s Current Report on Form 8-K, filed with the SEC on February 28, 2020 (SEC File No. 001-12648)). #</font></A></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><a href="exh_2101.htm"><font style="font-size: 10pt">21.01</font></a></td>
    <td><a href="exh_2101.htm"><font style="font-size: 10pt">Subsidiaries of the Company. *</font></a></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><a href="exh_2301.htm"><font style="font-size: 10pt">23.01</font></a></td>
    <td><a href="exh_2301.htm"><font style="font-size: 10pt">Consent of Grant Thornton LLP. *</font></a></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><a href="exh_3101.htm"><font style="font-size: 10pt">31.01</font></a></td>
    <td><a href="exh_3101.htm"><font style="font-size: 10pt">Certification of Chief Executive Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002. *</font></a></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><a href="exh_3102.htm"><font style="font-size: 10pt">31.02</font></a></td>
    <td><a href="exh_3102.htm"><font style="font-size: 10pt">Certification of Chief Financial Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002. *</font></a></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><a href="exh_3201.htm"><font style="font-size: 10pt">32.01</font></a></td>
    <td><a href="exh_3201.htm"><font style="font-size: 10pt">Certification of Chief Executive Officer and Chief Financial Officer pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002. **</font></a></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">101.INS </font></td>
    <td><font style="font-size: 10pt">XBRL Instance Document. *</font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">101.SCH </font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Extension Schema Document. *</font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">101.CAL </font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Calculation Linkbase Document. *</font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">101.LAB</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Label Linkbase Document. *</font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">101.PRE</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Presentation Linkbase Document. *</font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">101.DEF</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Extension Definition Linkbase Document. * </font></td>
    </tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
</table>
<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.5in"></td><td style="width: 0.25in">*</td><td>Filed herewith.</td></tr></table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.5in"></td><td style="width: 0.25in">**</td><td>Furnished herewith.</td></tr></table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0.5in"></td><td style="width: 0.25in">#</td><td>Indicates management contract or compensatory plan or arrangement.</td></tr></table>

<p style="font-size: 10pt; text-indent: -63pt; margin: 0pt 49.5pt 0pt 63pt"><b>&nbsp;</b></p>

<p style="margin: 0pt 49.5pt 0pt 63pt; font-size: 10pt; text-indent: -63pt"><b></b></p>

<!-- Field: Page; Sequence: 29; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->29<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 49.5pt 0pt 63pt; font-size: 10pt; text-indent: -63pt"><b>&nbsp;</b></p>

<p style="font-size: 10pt; text-indent: -63pt; margin: 0pt 49.5pt 0pt 63pt"><b></b></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 63pt"><b>ITEM 16.</b></td><td style="padding-right: 49.5pt"><b>Form 10-K Summary</b></td></tr></table>

<p style="font-size: 10pt; text-indent: -63pt; margin: 0pt 49.5pt 0pt 63pt"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"> None.</p>



<p style="font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.5in"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b></b></font></p>

<!-- Field: Page; Sequence: 30; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->30<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-align: center"><font style="text-transform: uppercase"><b></b></font></p>

<p style="font-size: 10pt; margin: 0pt 0"><font style="text-transform: uppercase"><b>&nbsp;</b></font></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.5in"><font style="text-transform: uppercase"><b><u>SIGNATURES</u></b></font></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.5in">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">Pursuant to the requirements of Section 13 or 15(d) of the Securities Exchange Act of
1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" style="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<tr style="vertical-align: top; text-align: left">
    <td colspan="2" style="white-space: nowrap">&nbsp;</td>
    <td style="white-space: nowrap">&nbsp;</td>
    <td colspan="2" style="white-space: nowrap">UFP TECHNOLOGIES, INC.</td></tr>
<tr style="vertical-align: top; text-align: left">
    <td colspan="2" style="white-space: nowrap">&nbsp;</td>
    <td style="white-space: nowrap">&nbsp;</td>
    <td colspan="2" style="white-space: nowrap">&nbsp;</td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap; width: 7%">Date:&nbsp;&nbsp;&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; width: 26%">March 13, 2020</td>
    <td style="white-space: nowrap; width: 34%">&nbsp;</td>
    <td style="white-space: nowrap; width: 6%">By:&nbsp;&nbsp;&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; width: 27%">/s/ R. Jeffrey Bailly</td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap">&nbsp;</td>
    <td style="padding-bottom: 1pt; white-space: nowrap">&nbsp;</td>
    <td style="white-space: nowrap">&nbsp;</td>
    <td style="white-space: nowrap">&nbsp;</td>
    <td style="padding-bottom: 1pt; white-space: nowrap">R. Jeffrey Bailly, President</td></tr>
</table>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has
been signed below by the following persons on behalf of the registrant and in the capacities and on the date indicated.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: top">
    <td style="width: 25%"><font style="font-size: 10pt"><u>SIGNATURE</u></font></td>
    <td style="width: 5%"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left; width: 40%"><font style="font-size: 10pt"><u>TITLE</u></font></td>
    <td style="width: 5%"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 25%"><p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt"><u>DATE</u></font></p>
        <p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt">&nbsp;</font></p></td></tr>
<tr style="vertical-align: top">
    <td style="border-bottom: Black 1pt solid"><font style="font-size: 10pt">/s/ R. Jeffrey Bailly</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Chairman, Chief Executive Officer, </font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td><p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt">R. Jeffrey Bailly</font></p>
        <p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt"></font></p></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">President, and Director</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">/s/ Ronald J. Lataille</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Chief Financial Officer, Senior Vice President,</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td style="border-top: Black 1pt solid"><p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt">Ronald J. Lataille</font></p>
        <p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt"></font></p></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Principal Financial and Accounting Officer</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">/s/ Daniel C. Croteau</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Director</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td style="border-top: Black 1pt solid"><font style="font-size: 10pt">Daniel C. Croteau </font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left; padding-left: 8.1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">/s/ Cynthia Feldmann</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Director</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td style="border-top: Black 1pt solid"><font style="font-size: 10pt">Cynthia Feldmann</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left; padding-left: 8.1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top">
    <td style="padding-bottom: 1pt">&nbsp;</td>
    <td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td style="border-bottom: Black 1pt solid"><font style="font-size: 10pt">/s/ Marc Kozin</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Director</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td><p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt">Marc Kozin</font></p>
        <p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt"></font></p></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left; padding-left: 8.1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td style="text-align: left; padding-left: 8.1pt">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td style="border-bottom: Black 1pt solid"><font style="font-size: 10pt">/s/ Thomas Oberdorf</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Director</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td><p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt">Thomas Oberdorf</font></p>
        <p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt"></font></p></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left; padding-left: 8.1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td style="text-align: left; padding-left: 8.1pt">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td style="border-bottom: Black 1pt solid"><font style="font-size: 10pt">/s/ Robert W. Pierce, Jr.</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Director</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td><p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt">Robert W. Pierce, Jr.</font></p>
        <p style="font-size: 10pt; margin: 0pt 0"><font style="font-size: 10pt"></font></p></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left; padding-left: 8.1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td style="text-align: left; padding-left: 8.1pt">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td style="border-bottom: Black 1pt solid"><font style="font-size: 10pt">/s/ Lucia Luce Quinn</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">Director</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">March 13, 2020</font></td></tr>
<tr style="vertical-align: top">
    <td><font style="font-size: 10pt">Lucia Luce Quinn </font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left; padding-left: 8.1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td>
    <td><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table>
<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<!-- Field: Page; Sequence: 31; Value: 3 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%"><!-- Field: Sequence; Type: Arabic; Name: PageNo -->31<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>UFP TECHNOLOGIES, INC.</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">Consolidated Financial Statements</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">and Financial Statement Schedule</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">As of December 31, 2019 and 2018</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">And for the Years Ended December 31, 2019, 2018 and 2017</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">With Reports of Independent Registered Public Accounting Firm</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b></b></p>

<!-- Field: Page; Sequence: 32; Options: NewSection; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->1<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b>&nbsp;</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>UFP TECHNOLOGIES, INC.</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0.25in 0pt 0"><a name="a_001"></a>Index to Consolidated Financial Statements and Financial Statement Schedule</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: top">
    <td style="width: 86%; padding-left: 0.25in; text-indent: -0.25in">&nbsp;</td>
    <td style="width: 14%; text-align: right"><font style="font-size: 10pt"><u>Page</u></font></td></tr>
<tr style="vertical-align: top">
    <td style="padding-left: 0.25in; text-indent: -0.25in"><a href="#a_002"><font style="font-size: 10pt">Reports of Independent Registered Public Accounting Firm</font></a></td>
    <td style="text-align: right"><a href="#a_002"><font style="font-size: 10pt">F-3</font></a></td></tr>
<tr style="vertical-align: top">
    <td style="padding-left: 0.25in; text-indent: -0.25in"><a href="#a_003"><font style="font-size: 10pt">Consolidated Balance Sheets as of December 31, 2019 and 2018</font></a></td>
    <td style="text-align: right"><a href="#a_003"><font style="font-size: 10pt">F-5</font></a></td></tr>

<tr style="vertical-align: top">
    <td style="padding-left: 0.25in; text-indent: -0.25in; width: 86%"><a href="#a_004">Consolidated Statements of Income for the years ended December 31, 2019, 2018 and 2017</a></td>
    <td style="text-align: right; width: 14%"><a href="#a_004">F-6</a></td></tr>
<tr style="vertical-align: top">
    <td style="padding-left: 0.25in; text-indent: -0.25in"><a href="#a_005">Consolidated Statements of Stockholders&#8217; Equity for the years ended December&nbsp;31,&nbsp;2019, 2018 and 2017</a></td>
    <td style="text-align: right"><a href="#a_005">F-7</a></td></tr>
<tr style="vertical-align: top">
    <td style="padding-left: 0.25in; text-indent: -0.25in"><a href="#a_006">Consolidated Statements of Cash Flows for the years ended December 31, 2019, 2018 and 2017</a></td>
    <td style="text-align: right"><a href="#a_006">F-8</a></td></tr>
<tr style="vertical-align: top">
    <td><a href="#a_007">Notes to Consolidated Financial Statements</a></td>
    <td style="text-align: right"><a href="#a_007">F-9</a></td></tr>
<tr style="vertical-align: top">
    <td><a href="#a_008">Schedule II - Valuation and Qualifying Accounts</a></td>
    <td style="text-align: right"><a href="#a_008">F-30</a></td></tr>
</table>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="margin: 0pt 0; font-size: 10pt"><b></b></p>

<!-- Field: Page; Sequence: 33; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->2<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt"><b>&nbsp;</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><b><a name="a_002"></a>REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">Board of Directors and Shareholders</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">UFP Technologies, Inc.</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0"><b>Opinion on the financial statements </b></p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: justify">We have audited the accompanying consolidated balance sheets of
UFP Technologies, Inc. (a Delaware corporation) and subsidiaries (the &#8220;Company&#8221;) as of December 31, 2019 and 2018,
the related consolidated statements of income, stockholders&#8217; equity, and cash flows for each of the three years in the period
ended December 31, 2019, and the related notes and financial statement schedule under Item 15(a) (collectively referred to as the
&#8220;financial statements&#8221;). In our opinion, the financial statements present fairly, in all material respects, the financial
position of the Company as of December 31, 2019 and 2018, and the results of its operations and its cash flows for each of the
three years in the period ended December 31, 2019, in conformity with accounting principles generally accepted in the United States
of America.</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">We also have audited, in accordance with the standards of the Public
Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;), the Company&#8217;s internal control over financial reporting
as of December 31, 2019, based on criteria established in the 2013 Internal Control&#8212;Integrated Framework issued by the Committee
of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;), and our report dated March 13, 2020 expressed an unqualified
opinion.</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Change in accounting principle</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">As discussed in Note 1 to the consolidated financial statements, the Company has changed
its method of accounting for leases as of January 1, 2019 due to the adoption of Accounting Standards Codification (ASC) Topic
842, <i>Leases</i>.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0"><b>Basis for opinion </b></p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: justify">These financial statements are the responsibility of the Company&#8217;s
management. Our responsibility is to express an opinion on the Company&#8217;s financial statements based on our audits. We are
a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance
with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the
PCAOB.</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">We conducted our audits in accordance with the standards of the
PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the financial statements
are free of material misstatement, whether due to error or fraud. Our audits included performing procedures to assess the risks
of material misstatement of the financial statements, whether due to error or fraud, and performing procedures that respond to
those risks. Such procedures included examining, on a test basis, evidence supporting the amounts and disclosures in the financial
statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as
well as evaluating the overall presentation of the financial statements. We believe that our audits provide a reasonable basis
for our opinion.</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">/s/ GRANT THORNTON LLP</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">We have served as the Company&#8217;s auditor since 2005.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Boston, Massachusetts</p>

<p style="font-size: 10pt; margin: 0pt 0">March 13, 2020</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 34; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->3<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</b></p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">Board of Directors and Shareholders</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">UFP Technologies, Inc.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Opinion on internal control over financial reporting</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">We have audited the internal control over financial reporting of UFP Technologies (a
Delaware corporation) and subsidiaries (the &#8220;Company&#8221;) as of December 31, 2019, based on criteria established in the
2013 <i>Internal Control&#8212;Integrated Framework</i> issued by the Committee of Sponsoring Organizations of the Treadway Commission
(&#8220;COSO&#8221;). In our opinion, the Company maintained, in all material respects, effective internal control over financial
reporting as of December 31, 2019, based on criteria established in the 2013 <i>Internal Control&#8212;Integrated Framework</i>
issued by COSO.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">We also have audited, in accordance with the standards of the Public Company Accounting
Oversight Board (United States) (&#8220;PCAOB&#8221;), the consolidated financial statements of the Company as of and for the year
ended December 31, 2019, and our report dated March 13, 2020 expressed an unqualified opinion on those financial statements.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Basis for opinion</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">The Company&#8217;s management is responsible for maintaining effective internal control
over financial reporting and for its assessment of the effectiveness of internal control over financial reporting, included in
the accompanying Management&#8217;s Report on Internal Control Over Financial Reporting (&#8220;Management&#8217;s Report&#8221;).
Our responsibility is to express an opinion on the Company&#8217;s internal control over financial reporting based on our audit.
We are a public accounting firm registered with the PCAOB and are required to be independent with respect to the Company in accordance
with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the
PCAOB.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">We conducted our audit in accordance with the standards of the PCAOB. Those standards
require that we plan and perform the audit to obtain reasonable assurance about whether effective internal control over financial
reporting was maintained in all material respects. Our audit included obtaining an understanding of internal control over financial
reporting, assessing the risk that a material weakness exists, testing and evaluating the design and operating effectiveness of
internal control based on the assessed risk, and performing such other procedures as we considered necessary in the circumstances.
We believe that our audit provides a reasonable basis for our opinion.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>Definition and limitations of internal control over financial reporting</b></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">A company&#8217;s internal control over financial reporting is a process designed to
provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external
purposes in accordance with generally accepted accounting principles. A company&#8217;s internal control over financial reporting
includes those policies and procedures that (1) pertain to the maintenance of records that, in reasonable detail, accurately and
fairly reflect the transactions and dispositions of the assets of the company; (2) provide reasonable assurance that transactions
are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles,
and that receipts and expenditures of the company are being made only in accordance with authorizations of management and directors
of the company; and (3) provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use,
or disposition of the company&#8217;s assets that could have a material effect on the financial statements.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Because of its inherent limitations, internal control over financial reporting may not
prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk
that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures
may deteriorate.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">/s/ GRANT THORNTON LLP</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Boston, Massachusetts</p>

<p style="font-size: 10pt; margin: 0pt 0">March 13, 2020</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0"></p>

<!-- Field: Page; Sequence: 35; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->4<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt; text-align: justify"></p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0"></p>

<p style="font-size: 10pt; text-align: justify; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b><a name="a_003"></a>UFP TECHNOLOGIES, INC.<br>
Consolidated Balance Sheets</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">(In thousands, except share data)</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<div data-td-taggable-table="" data-td-statement-type="balance-sheet"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: center">Assets</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Current assets:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left; text-indent: 10pt">Cash and cash equivalents</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">3,743</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">3,238</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Receivables, net</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">28,648</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">28,321</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Inventories</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">18,276</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">19,576</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Prepaid expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,304</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,206</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt">Refundable income taxes</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">279</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,285</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 20pt">Total current assets</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">53,250</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">55,626</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Property, plant and equipment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">116,089</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">111,779</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt">Less accumulated depreciation and amortization</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(59,350</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(54,112</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 20pt">Net property, plant and equipment</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">56,739</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">57,667</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">Goodwill</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">51,838</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">51,838</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Intangible assets, net</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">20,975</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">22,232</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Non-qualified deferred compensation plan</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,775</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,034</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Operating lease right of use assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,034</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Other assets</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">147</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">201</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt; text-indent: 20pt">Total assets</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">188,758</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">189,598</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; text-align: center">Liabilities and Stockholders&#8217; Equity</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Current liabilities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Accounts payable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">4,577</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,836</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Accrued expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8,483</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8,458</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Deferred revenue</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,574</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,507</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Operating lease liabilities</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">674</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt">Current installments of long-term debt</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,857</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 20pt">Total current liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">16,308</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">20,658</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Long-term debt, excluding current installments</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">22,286</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Deferred income taxes</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,921</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,129</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Non-qualified deferred compensation plan</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,788</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,044</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Operating lease liabilities</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,416</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Other liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">334</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">24</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 20pt">Total liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">26,767</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">49,141</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Commitments and contingencies (Note 14)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Stockholders&#8217; equity:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-indent: -10pt; padding-left: 20pt">Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 20pt">Common stock, $.01 par value, 20,000,000 shares authorized; 7,475,768 and 7,446,209 shares issued and outstanding, respectively at December 31, 2019; and 7,415,002 and 7,385,443 shares issued and outstanding, respectively, at December 31, 2018</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">74</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">74</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 20pt">Additional paid-in capital</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">30,952</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">29,168</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 20pt">Retained earnings</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">131,552</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">111,802</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 20pt">Treasury stock at cost, 29,559 shares at December 31, 2019 and 2018</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(587</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(587</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Total stockholders' equity</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">161,991</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">140,457</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total liabilities and stockholders' equity</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">188,758</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">189,598</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The accompanying notes are an integral part of these consolidated financial statements.</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 36; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->5<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>UFP TECHNOLOGIES, INC.</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><a name="a_004"></a><b>Consolidated Statements of Income</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">(In thousands, except per share data)</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"></p>

<div data-td-taggable-table="" data-td-statement-type="income"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left">Net sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">198,381</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">190,455</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">147,843</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt">Cost of sales</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">144,422</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">142,147</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">112,356</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Gross profit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">53,959</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">48,308</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">35,487</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Selling, general, and administrative expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">29,251</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">27,654</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">23,724</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Acquisition costs</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,089</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Restructuring costs</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">63</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">(Gain) Loss on sales of property, plant and equipment</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(47</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">7</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Operating income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">24,708</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">19,612</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">11,693</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Interest income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">47</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">216</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Interest expense</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(674</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,320</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(50</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Other (expense) income</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(388</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">64</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Income before income tax provision</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">23,646</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">18,403</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">11,859</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Income tax expense</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,896</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">4,092</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,649</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Net income</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">19,750</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">14,311</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">9,210</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Net income per common share outstanding:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt">Basic</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2.66</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.95</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.27</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Diluted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2.63</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.93</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.26</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">Weighted average common shares outstanding:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Basic</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,424</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,347</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,248</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt">Diluted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,516</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,430</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,337</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The accompanying notes are an integral part of these consolidated financial statements.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 37; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->6<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>UFP TECHNOLOGIES, INC.</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><a name="a_005"></a><b>Consolidated Statements of Stockholders&#8217; Equity</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>Years Ended December 31, 2019, 2018 and 2017</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">(In thousands)</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-taggable-table="" data-td-statement-type="stockholders-equity"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Additional</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Total</td></tr>
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td><td style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Common Stock</td><td style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold; text-align: center">Paid-in</td><td style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold; text-align: center">Retained</td><td style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Treasury Stock</td><td style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt; font-weight: bold; text-align: center">Stockholders'</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Capital</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Earnings</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Equity</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 23%; font-size: 10pt; font-weight: bold">Balance at December 31, 2016</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 8%; font-size: 10pt; text-align: right">7,212</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 8%; font-size: 10pt; text-align: right">72</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 8%; font-size: 10pt; text-align: right">25,216</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 8%; font-size: 10pt; text-align: right">88,352</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 8%; font-size: 10pt; text-align: right">30</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 8%; font-size: 10pt; text-align: right">(587</td><td style="width: 1%; font-size: 10pt; text-align: left">)</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 8%; font-size: 10pt; text-align: right">113,053</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">32</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,067</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,068</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-indent: -10pt; padding-left: 10pt">Exercise of stock options net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">47</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">676</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">677</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 10pt">Net share settlement of restricted stock units and stock option tax withholding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(11</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(295</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(296</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">9,210</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">9,210</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold; padding-bottom: 2.5pt">Balance at December 31, 2017</td><td style="padding-bottom: 2.5pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,280</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">73</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">26,664</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">97,562</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">30</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">(587</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">123,712</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">31</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,212</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,212</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-indent: -10pt; padding-left: 10pt">Exercise of stock options net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">79</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,269</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,270</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 10pt">Net share settlement of restricted stock units and stock option tax withholding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(5</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(144</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(144</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 10pt">Excess tax benefits on share-based compensation - adjustment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">167</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">167</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">ASC 606 adjustments</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(71</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(71</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">14,311</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">14,311</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; padding-bottom: 2.5pt">Balance at December 31, 2018</td><td style="padding-bottom: 2.5pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,385</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">74</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">29,168</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">111,802</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">30</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">(587</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">140,457</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">29</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,591</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,591</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-indent: -10pt; padding-left: 10pt">Exercise of stock options net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">45</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">705</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">705</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 10pt">Net share settlement of restricted stock units and stock option tax withholding</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(13</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(512</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(512</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">19,750</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">19,750</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; font-weight: bold; padding-bottom: 2.5pt">Balance at December 31, 2019</td><td style="padding-bottom: 2.5pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,446</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">74</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">30,952</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">131,552</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">30</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">(587</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">161,991</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The accompanying notes are an integral part of these consolidated financial statements.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 38; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->7<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>UFP TECHNOLOGIES, INC.</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><a name="a_006"></a><b>Consolidated Statements of Cash Flows</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">(In thousands)</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<div data-td-taggable-table="" data-td-statement-type="cash-flows"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Cash flows from operating activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 55%; font-size: 10pt; text-align: left; text-indent: 10pt">Net income from consolidated operations</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">19,750</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">14,311</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">9,210</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 20pt">Adjustments to reconcile net income to net cash provided by operating activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 0pt; padding-left: 20pt">Depreciation and amortization</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">8,172</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,831</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,635</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 0pt; padding-left: 20pt">(Gain) loss on sales of property, plant and equipment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(47</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">7</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 0pt; padding-left: 20pt">Share-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,591</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,212</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,068</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 0pt; padding-left: 20pt">Deferred income taxes</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">792</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,881</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,019</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 0pt; padding-left: 20pt">Changes in operating assets and liabilities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Receivables, net</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(327</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,556</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(132</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Inventories</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,300</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,295</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,288</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Prepaid expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(98</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(249</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">446</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Refundable income taxes</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,006</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,268</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(210</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Other assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">110</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(76</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(228</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Accounts payable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,472</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,113</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">93</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Accrued expenses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">25</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,472</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">974</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt; padding-left: 20pt">Deferred revenue</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">67</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">35</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">91</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt; padding-left: 20pt">Non-qualified deferred compensation plan and other liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">313</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(44</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">246</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 20pt; padding-left: 20pt">Net cash provided by operating activities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">31,229</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">21,320</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">17,469</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Cash flows from investing activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Additions to property, plant and equipment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(5,778</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(5,428</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(10,382</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Acquisition of Dieletrics, net of cash acquired</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(76,978</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt">Proceeds from sale of property, plant and equipment</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">4</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">77</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">7</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 20pt; padding-left: 20pt">Net cash used in investing activities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(5,774</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(82,329</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(10,375</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Cash flows from financing activities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Proceeds from advances on revolving line of credit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">36,000</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Payments on revolving line of credit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(8,000</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(28,000</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Proceeds from the issuance of long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">20,000</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: 10pt">Principal repayment of long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(17,143</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,857</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(856</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 20pt">Proceeds from the exercise of stock options, net of shares presented for exercise</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">705</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,270</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">677</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: -10pt; padding-left: 20pt">Payment of statutory withholding for stock options exercised and restricted stock units vested</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(512</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(144</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(296</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 20pt; padding-left: 20pt">Net cash (used in) provided by financing activities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(24,950</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">26,269</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(475</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Net change in cash and cash equivalents</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">505</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(34,740</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">6,619</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Cash and cash equivalents at beginning of year</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,238</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">37,978</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">31,359</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Cash and cash equivalents at end of year</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">3,743</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">3,238</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">37,978</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></p>

<p style="margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">The accompanying notes are an integral part of these consolidated financial statements.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<!-- Field: Page; Sequence: 39; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->8<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>UFP TECHNOLOGIES, INC.</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0.25in 0pt 0"><a name="a_007"></a><b>Notes to Consolidated Financial Statements</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; text-align: center; text-indent: -45pt; margin: 0pt 0 0pt 45pt"><b>&nbsp;</b></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(1)</b></td><td><b>Summary of Significant Accounting Policies</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">UFP Technologies, Inc. (&#8220;the Company&#8221;) is an innovative designer
and custom converter of foams, plastics, composites and natural fiber products principally serving the medical, automotive, aerospace
and defense, consumer, electronics and industrial markets. The Company was incorporated in the State of Delaware in 1993.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(a)</i></td><td><i>Principles of Consolidation</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The consolidated financial statements include the accounts and results of operations
of UFP Technologies, Inc., its wholly-owned subsidiaries, Moulded Fibre Technology, Inc., Simco Industries, Inc. Dielectrics, Inc.
and UFP Realty LLC, and its wholly-owned subsidiaries, UFP MA LLC, UFP CO LLC, UFP FL LLC, UFP TX LLC, UFP MI LLC, and UFP IA LLC.
All significant intercompany balances and transactions have been eliminated in consolidation. The Company has evaluated all subsequent
events through the date of this filing.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(b)</i></td><td><i>Use of Estimates</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The preparation of consolidated financial statements in conformity with accounting
principles generally accepted in the United States of America requires management to make estimates and assumptions that affect
the reported amounts of assets and liabilities, including allowance for doubtful accounts and the net realizable value of inventory,
and the fair value of goodwill, and disclosure of contingent assets and liabilities at the date of the consolidated financial statements,
and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(c)</i></td><td><i>Fair Value Measurement</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company defines fair value as the price that would be received from selling
an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. When determining
the fair value for assets and liabilities, which are required to be recorded at fair value, the Company considers the principal
or most advantageous market in which the Company would transact and the market-based risk measurement or assumptions that market
participants would use in pricing the asset or liability, such as inherent risk, transfer restrictions, and credit risk.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company has not elected fair value accounting for any financial instruments
for which fair value accounting is optional.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(d)</i></td><td><i>Fair Value of Financial Instruments</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">Cash and cash equivalents, accounts receivable, accounts payable, accrued expenses
and other liabilities are stated at carrying amounts that approximate fair value because of the short maturity of those instruments.
The carrying amount of the Company&#8217;s long-term debt approximates fair value as the interest rate on the debt approximates
the Company&#8217;s current incremental borrowing rate.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(e)</i></td><td><i>Cash and Cash Equivalents</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company considers all highly liquid investments with original maturities
of three months or less to be cash equivalents. At December 31, 2019 and 2018, the Company did not have any cash equivalents.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company maintains its cash in bank deposit accounts, money market funds,
and certificates of deposit that at times exceed federally insured limits. The Company periodically reviews the financial stability
of institutions holding its accounts and does not believe it is exposed to any significant custodial credit risk on cash. The amounts
contained within the Company&#8217;s main operating accounts at Bank of America and TD Bank at December 31, 2019, exceed the federal
depository insurance limit by approximately $4.7 million.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<!-- Field: Page; Sequence: 40; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->9<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt"></p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(f)</i></td><td><i>Accounts Receivable</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company periodically reviews the collectability of its accounts receivable.
Provisions are recorded for accounts that are potentially uncollectable. Determining adequate reserves for accounts receivable
requires management&#8217;s judgment. Conditions impacting the realizability of the Company&#8217;s receivables could cause actual
asset write-offs to be materially different than the reserved balances as of December 31, 2019.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(g)</i></td><td><i>Inventories</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">Inventories include material, labor, and manufacturing overhead and are valued
at the lower of cost or net realizable value. Cost is determined using the first-in, first-out (&#8220;FIFO&#8221;) method.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company periodically reviews the realizability of its inventory for potential
excess or obsolescence. Determining the net realizable value of inventory requires management&#8217;s judgment. Conditions impacting
the realizability of the Company&#8217;s inventory could cause actual asset write-offs to be materially different than the Company&#8217;s
current estimates as of December 31, 2019.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(h)</i></td><td><i>Property, Plant, and Equipment</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">Property, plant, and equipment are stated at cost and are depreciated or amortized
using the straight-line method over the estimated useful lives of the assets or the related lease term, if shorter.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Estimated useful lives of property, plant, and equipment are as follows:</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.75in"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 80%; margin: 0pt 0pt 0pt 0.65in">
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Leasehold improvements</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center">Shorter of estimated useful life <br>
or remaining lease term</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; width: 63%">Buildings and improvements (in years)</td><td style="font-size: 10pt; width: 1%">&nbsp;</td>
    <td style="text-align: right; font-size: 10pt; width: 12%">20</td>
    <td style="text-align: center; font-size: 10pt; width: 12%">- </td>
    <td style="font-size: 10pt; width: 12%">40</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Machinery &amp; equipment (in years)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="text-align: right; font-size: 10pt">7</td>
    <td style="text-align: center; font-size: 10pt">-</td>
    <td style="font-size: 10pt">15</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Furniture, fixtures, computers &amp; software (in years)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="text-align: right; font-size: 10pt">3</td>
    <td style="text-align: center; font-size: 10pt">-</td>
    <td style="font-size: 10pt">7</td></tr>
</table></div>


<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">Property, plant, and equipment amounts are reviewed for impairment whenever
events or changes in circumstances indicate that the carrying amount of an asset may not be recoverable. An impairment loss would
be recognized when the carrying amount of an asset exceeds the estimated undiscounted future cash flows expected to result from
the use of the asset and its eventual disposition. The amount of the impairment loss to be recorded is calculated by the excess
of the asset&#8217;s carrying value over its fair value. No events or changes in circumstances arose during the year ended December
31, 2019 that required management to perform an impairment analysis.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(i)</i></td><td><i>Goodwill</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Goodwill is tested for impairment annually and will be tested for impairment
between annual tests if an event occurs or circumstances change that would indicate that the carrying amount may be impaired. Impairment
testing for goodwill is done at a reporting unit level. Reporting units are one level below the business segment level but can
be combined when reporting units within the same segment have similar economic characteristics. An impairment loss generally would
be recognized when the carrying amount of the reporting unit&#8217;s net assets exceeds the estimated fair value of the reporting
unit. The Company consists of a single reporting unit. The Company last performed &#8220;step 1&#8221; of the goodwill impairment
test as of December 31, 2018. In testing goodwill for impairment at December 31, 2018, the Company primarily utilized the guideline
public company (&#8220;GPC&#8221;) method under the market approach and the discounted cash flows method (&#8220;DCF&#8221;) under
the income approach to determine the fair value of the reporting unit for purposes of testing the reporting unit&#8217;s carrying
value of goodwill for impairment. The GPC method derives a value by generating a multiple of EBITDA through the comparison of the
Company to similar publicly traded companies. The DCF approach derives a value based on the present value of a series of estimated
future cash flows at the valuation date by the application of a discount rate, one that a prudent investor would require before
making an investment in our equity securities. The key assumptions used in our approach included:</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 41; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->10<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 45.35pt; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 45.35pt"></td><td style="width: 18pt">&#8226;</td><td>The reporting unit&#8217;s estimated financials and five-year projections of financial results, which were based on our strategic
plans and long-range forecasts. Sales growth rates represent estimates based on current and forecasted sales mix and market conditions.
The profit margins were projected based on historical margins, projected sales mix, current expense structure and anticipated expense
modifications.</td></tr>                        <tr style="vertical-align: top">
<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 45.35pt"></td><td style="width: 18pt">&#8226;</td><td>The projected terminal value which reflects the total present value of projected cash flows beyond the last period in the DCF.
This value reflects a growth rate for the reporting unit, which is approximately the same growth rate of expected inflation into
perpetuity.</td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 45.35pt"></td><td style="width: 18pt">&#8226;</td><td>The discount rate determined using a Weighted Average Cost of Capital method (&#8220;WACC&#8221;), which considered
                                                                   market and industry data as well as Company-specific risk factors. Selection of guideline public companies which are similar
                                                                   in size and market capitalization to each other and to the Company.</td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">As of December 31, 2018, based on our calculations under the above noted
approach, the fair value of the reporting unit significantly exceeded the carrying value of the reporting unit. In performing these
calculations, management used its most reasonable estimates of the key assumptions discussed above. If the Company&#8217;s actual
operating results and/or the key assumptions utilized in management&#8217;s calculations differ from our expectations, it is possible
that a future impairment charge may be necessary.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company&#8217;s annual impairment testing date is December 31. The Company
performed a qualitative assessment (&#8220;step 0&#8221;) as of December 31, 2019 and determined that it was more likely than not
that the fair value of its reporting unit exceeded its carrying amount. As a result, the Company was not required to proceed to
a &#8220;step 1&#8221; impairment assessment. Factors considered included the 2018 step 1 analysis and the calculated excess fair
value over carrying amount, financial performance, forecasts and trends, market cap, regulatory and environmental issues, macro-economic
conditions, industry and market considerations, raw material costs and management stability.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0; text-indent: 45pt">Approximately $47.9 million of goodwill is deductible for tax purposes.<br>
<br>
</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(j)</i></td><td><i>Intangible Assets</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">Intangible assets with a definite life are amortized on a straight-line basis,
with estimated useful lives ranging from 5 to 20 years. Intangible assets with a definite life are tested for impairment whenever
events or circumstances indicate that their carrying values may not be recoverable. No events or changes in circumstances arose
during the year ended December 31, 2019 that required management to perform an impairment analysis.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(k)</i></td><td><i>Revenue Recognition</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Beginning in 2018, the Company recognizes revenue when a customer obtains
control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to
be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles
of ASC 606 which include (1) identifying the contract with a customer, (2) identifying separate performance obligations within
the contract, (3) determining the transaction price, (4) allocating the transaction price to the performance obligations, and (5)
recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes
revenue from the sale of tooling and machinery primarily upon customer acceptance, with the exception of certain tooling where
control does not transfer to the customer, resulting in revenue being recognized over the estimated time for which parts are produced
with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. The
Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer.
In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial.
Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction
price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms
and conditions of the sale not as performance obligations but rather as fulfillment costs. These activities are required to fulfill
the Company&rsquo;s promise to transfer the good and are expensed when revenue is recognized.</P>

<P STYLE="font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 45pt">For the year 2017, prior to ASC 606, the Company recognized revenue at the time
of shipment when title and risk of loss have passed to the customer, persuasive evidence of an arrangement exists, performance
of its obligation is complete, its price to the buyer is fixed or determinable, and the Company is reasonably assured of collection.
Determination of these criteria, in some cases, requires management&rsquo;s judgment.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 45pt"></P>



<P STYLE="margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt; text-indent: -45pt"></p>

<!-- Field: Page; Sequence: 42; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->11<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt; text-indent: -45pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(l)</i></td><td><i>Share-Based Compensation</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">When accounting for equity instruments exchanged for employee services, share-based
compensation cost is measured at the grant date, based on the calculated fair value of the award, and is recognized as an expense
over the employee&#8217;s requisite service period (generally the vesting period of the equity grant). Forfeitures are expensed
as they occur.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company issues share-based awards through several plans that are described
in detail in Note&nbsp;12. The compensation cost charged against income for those plans is included in selling, general &amp;
administrative expenses as follows (in thousands):</p>

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.63in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="text-align: center; font-size: 10pt">&nbsp;</td><td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td><td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td><td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Share-based compensation expense</td><td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,591</td><td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,212</td><td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,068</td><td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The compensation expense for stock options granted during the three-year period
ended December&nbsp;31, 2019, was determined as the fair value of the options using the Black Scholes valuation model. The assumptions
are noted as follows:</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin-left: 0.63in">
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 54%; font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected volatility</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">28.9</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">27.7</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 5%; font-size: 10pt; text-align: right">27.4%</td><td style="width: 5%; font-size: 10pt; text-align: center"><font style="font-size: 10pt"> -</font></td><td style="width: 5%; font-size: 10pt; text-align: left">29.1%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected dividends</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">None</font></td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">None</font></td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: center"><font style="font-size: 10pt">None</font></td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Risk-free interest rate</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2.3</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2.7</td><td style="font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: right">1.56%</td><td style="font-size: 10pt; text-align: center"><font style="font-size: 10pt"> -</font></td><td style="font-size: 10pt; text-align: left">1.84%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-indent: -6.85pt; padding-left: 6.85pt">Exercise price</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">38.61</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">31.20</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: right">$27.05</td><td style="font-size: 10pt; text-align: center"><font style="font-size: 10pt"> - </font></td><td style="font-size: 10pt; text-align: left">$28.70</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected term (in years)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">6.0</font></td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">6.0</font></td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: right">2.7</td><td style="font-size: 10pt; text-align: center"><font style="font-size: 10pt"> to </font></td><td style="font-size: 10pt; text-align: left">5.8</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Weighted-average grant date fair value</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">12.70</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">10.15</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: right">$5.59</td><td style="font-size: 10pt; text-align: right"><p style="font-size: 10pt; text-align: center; margin: 0pt 6.75pt 0pt 5.5pt"></p><p style="font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"> -</p></td><td style="font-size: 10pt; text-align: left">$8.51</td></tr>
</table></div>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The stock volatility for each grant is determined based on a review of the experience
of the weighted average of historical daily price changes of the Company&#8217;s common stock over the expected option term, and
the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding
with the expected term of the option. The expected term is estimated based on historical option exercise activity.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The total income tax benefit recognized in the consolidated statements of income
for share-based compensation arrangements was approximately $653 thousand, $544 thousand and $525 thousand for the years ended
December 31, 2019, 2018 and 2017, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(m)</i></td><td><i>Shipping and Handling Costs</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">Costs incurred related to shipping and handling are included in cost of sales.
Amounts charged to customers pertaining to these costs are included in net sales.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(n)</i></td><td><i>Income Taxes</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company&#8217;s income taxes are accounted for under the asset and liability
method. Under the asset and liability method, deferred tax assets and liabilities are recognized for the estimated future tax consequences
attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective
tax basis and operating loss and tax credit carryforwards. Deferred tax expense or benefit results from the net change during the
year in deferred tax assets and liabilities. The effect on deferred tax assets and liabilities of a change in tax rates is recognized
in income in the period that includes the enactment date.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 43; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->12<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 45pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company evaluates the need for a valuation allowance to reduce its deferred
tax assets to the amount that is more likely than not to be realized. The Company has considered future taxable income and ongoing
prudent and feasible tax planning strategies in assessing the need for a valuation allowance. Should the Company determine that
it would not be able to realize all or part of its deferred tax assets in the future, an adjustment to the deferred tax assets
would be charged to income in the period such determination was made.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company recognizes the tax benefit from an uncertain tax position only if
it is more likely than not that the tax position will be sustained on examination by the taxing authorities, based on the technical
merits of the position. The tax benefits recognized in the consolidated financial statements from such positions are then measured
based on the largest benefit that has a greater than 50% likelihood of being realized upon settlement. The Company recognizes interest
and penalties accrued related to unrecognized tax benefits in tax expense.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(o)</i></td><td><i>Segments and Related Information</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company follows the provisions of Accounting Standards Codification (ASC)
280, <i>Segment Reporting</i>, which establish standards for the way public business enterprises report information and operating
segments in annual financial statements (see Note 17).</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"><i>(p)&nbsp;&nbsp; Treasury Stock</i></p>

<p style="font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company accounts for treasury stock under the cost method, using the first-in,
first out flow assumption, and we include treasury stock as a component of stockholders&#8217; equity. The Company did not repurchase
any shares of common stock during the years ended December 31, 2019, 2018 and 2017.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27.35pt"></td><td style="width: 18pt"><i>(q)</i></td><td><i>Research and Development</i></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">On a routine basis, the Company incurs costs related to research and development
activity. These costs are expensed as incurred. Approximately $9.5 million, $10.5 million and $5.0 million were expensed in the
years ended December 31, 2019, 2018 and 2017, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><i>Recent Accounting Pronouncements</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In February 2016, the Financial Accounting Standards Board (FASB) issued
Accounting Standards Update (ASU) No. 2016-02, &#8220;Leases (Accounting Standards Codification (ASC) 842),&#8221; and issued subsequent
amendments to the initial guidance in January 2018 within ASU No. 2018-01 and in July 2018 within ASU Nos. 2018-10 and 2018-11.
The Company adopted ASC 842 on January 1, 2019. See Note 13 for further details.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In January 2017, the FASB issued ASU No. 2017-04, Intangibles&#8212;Goodwill
and Other (ASC 350), Simplifying the Test for Goodwill Impairment. The guidance removes Step 2 of the goodwill impairment test
and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill
impairment will now be the amount by which a reporting unit&#8217;s carrying value exceeds its fair value, not to exceed the carrying
amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative
impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment
tests in fiscal years beginning after December 15, 2019. Early adoption is permitted for any impairment tests performed on testing
dates after January 1, 2017. The Company does not believe adoption will have a material impact on its financial condition or results
of operations.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In June 2016, the FASB issued accounting standard that requires
companies to utilize an impairment model (current expected credit loss, or CECL) for most financial assets measured at
amortized cost and certain other financial instruments, which include, but are not limited to, trade and other receivables.
This accounting standard will replace the incurred loss model under current GAAP with a model that reflects
expected&nbsp;credit losses&nbsp;and requires consideration of a broader range of reasonable and supportable information to
estimate those losses. Effective January 1, 2020, the Company adopted this standard. The adoption of this standard is not
expected to have a material impact on our Consolidated Financial Statements.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 44; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->13<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 45.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><i>Revisions</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">Certain revisions have been made to the December 31, 2018 and 2017 Consolidated
Statements of Income to conform to the current year presentation relating to a reclassification of material overcharge settlement
to selling, general and administrative expenses. The reclassification resulted in the removal of the material overcharge settlement
line item and a decrease in selling, general and administrative expenses of $104 thousand and $121 thousand for the years ended
December 31, 2018 and 2017, respectively. These revisions had no impact on previously reported operating or net income and are
deemed immaterial to the previously issued financial statements.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 45pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(2)</b></td><td><b>Revenue Recognition</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><i>Disaggregated Revenue</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following table presents the Company&#8217;s revenue disaggregated by
the major types of goods and services sold to our customers (in thousands) (See Note 17 for further information regarding net sales
by market):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: #0070C0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Net sales of:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; width: 55%; font-size: 10pt; text-align: left">Products</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">193,016</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">183,186</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">146,275</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Tooling and Machinery</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,730</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,302</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,181</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Engineering services</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,635</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,967</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">387</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Total net sales</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">198,381</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">190,455</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">147,843</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><i>Contract balances</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Timing of revenue recognition may differ from the timing of invoicing to
customers. When invoicing occurs prior to revenue recognition, the Company has deferred revenue, or contract liabilities, included
within &#8220;deferred revenue&#8221; on the condensed consolidated balance sheet.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 45; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->14<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following table presents opening and closing balances of contract liabilities
for the years ended December 31, 2019 and 2018 (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt; text-indent: 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt; text-indent: 27.35pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Liabilities</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Years Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt">Deferred revenue - beginning of period</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">2,507</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">871</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Acquired in Dielectrics business combination</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,175</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Increases due to consideration received from customers</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,216</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,188</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Revenue recognized</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(3,149</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(4,727</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.5pt">Deferred revenue - end of period</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,574</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,507</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Revenue recognized during the years ended December 31, 2019 and 2018 from
amounts included in deferred revenue at the beginning of the period were approximately $1.7 million and $0.6 million, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">When invoicing occurs after revenue recognition, the Company has unbilled
receivables (contract assets) included within &#8220;receivables&#8221; on the condensed consolidated balance sheet.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following table presents opening and closing balances of contract assets
for the years ended December 31, 2019 and 2018 (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Assets</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Years Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt">Unbilled Receivables - beginning of period</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">65</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">-</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Increases due to revenue recognized - not invoiced to customers</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">831</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">301</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Decreases due to customer invoicing</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(824</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(236</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 2.5pt">Unbilled Receivables - end of period</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">72</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">65</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(3)</b></td><td><b>Supplemental Cash Flow Information</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">Years
    Ended December 31,</font></td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2019</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2018</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2017</font></td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="11" style="font-size: 10pt; text-align: center"><font style="font-size: 10pt">(in thousands)</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">Cash paid for:</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; width: 55%; font-size: 10pt">Interest</td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">664</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,303</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">47</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Income taxes, net of refunds</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,255</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">3,463</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">3,878</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">Non-cash investing and financing activities:</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt">Capital additions accrued but not yet paid</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">213</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">218</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">85</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table></div>



<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">During the years ended December 31, 2019, 2018 and 2017, the Company permitted
the exercise of stock options with exercise proceeds paid with the Company&#8217;s stock (&#8220;cashless&#8221; exercises) totaling
approximately $0, $0 and $172 thousand, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 46; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->15<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(4)</b></td><td><b>Receivables</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Receivables consist of the following (in thousands):</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left">Accounts receivable&#8211;trade</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">29,134</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">28,885</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Less allowance for doubtful receivables</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(486</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(564</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Receivables, net</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">28,648</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">28,321</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Receivables are written off against these reserves in the period they are determined
to be uncollectable, and payments subsequently received on previously written-off receivables are recorded as a reversal of the
bad debt provision. The Company performs credit evaluations on its customers and obtains credit insurance on a large percentage
of its accounts but does not generally require collateral. The Company recorded a net reversal of the provision for doubtful accounts
of approximately $52 thousand and $50 thousand the years ended December&nbsp;31, 2019 and 2018, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(5)</b></td><td><b>Inventories</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Inventories consist of the following (in thousands):</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left">Raw materials</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">10,540</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">11,727</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Work in process</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,279</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,521</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Finished goods</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">5,457</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">5,328</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total Inventory</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">18,276</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">19,576</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(6)</b></td><td><b>Other Intangible Assets</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The carrying values of the Company&#8217;s definite-lived intangible assets
as of December 31, 2019 and 2018 are as follows (in thousands):</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><u>December 31, 2019</u></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename &amp; Brand</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br> Compete</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br> List</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt">Estimated useful life </td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">367</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">462</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">22,555</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">23,384</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(70</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(177</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,162</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,409</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Net balance</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">297</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">285</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">20,393</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">20,975</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><u>December 31, 2018</u></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename &amp; Brand</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br> Compete</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br> List</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt">Estimated useful life</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">367</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">462</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">22,555</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">23,384</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(33</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(85</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(1,034</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(1,152</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Net balance</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">334</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">377</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">21,521</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">22,232</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 47; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->16<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Amortization expense related to intangible assets was approximately $1.3
million, $1.2 million, and $0.3 million for the years ended December 31, 2019, 2018 and 2017, respectively. The estimated remaining
amortization expense as of December 31, 2019 is as follows (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 35%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">2020</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,257</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White; width: 50%"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">2021</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,257</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">2022</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,257</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">2023</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,172</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">2024</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,164</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><font style="font-size: 10pt">Thereafter</font></td><td style="font-size: 10pt; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">14,868</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"><font style="font-size: 10pt">Total</font></td><td style="font-size: 10pt; padding-bottom: 2.5pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">20,975</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(7)</b></td><td><b>Property, Plant and Equipment</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Property, plant and equipment consist of the following (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">December
    31,</font></td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2019</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2018</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">Land and improvements</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">3,191</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">3,191</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">Buildings and improvements</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">35,502</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">35,187</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">Leasehold improvements</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">3,022</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">2,843</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">Machinery &amp; equipment</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">66,438</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">62,440</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">Furniture, fixtures, computers &amp; software</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">6,414</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">7,119</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><font style="font-size: 10pt">Construction in progress</font></td><td style="font-size: 10pt; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">1,522</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">999</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; padding-bottom: 2.5pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">116,089</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; padding-bottom: 2.5pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">111,779</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">Depreciation and amortization expense of Property, Plant and
Equipment for the years ended December&nbsp;31, 2019, 2018 and 2017, were approximately $6.9 million, $6.6 million, and $5.3 million,
respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(8)</b></td><td><b>Indebtedness </b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 0.25in">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">On February 1, 2018, the Company, as the borrower, entered into an unsecured
$70 million Amended and Restated Credit Agreement (the &#8220;Amended and Restated Credit Agreement&#8221;) with the Company&#8217;s
subsidiaries (the &#8220;Subsidiary Guarantors&#8221;) and Bank of America, N.A., in its capacity as the initial lender, Administrative
Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit
Agreement amends and restates the Company&#8217;s prior credit agreement.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The credit facilities under the Amended and Restated Credit Agreement (the &#8220;Amended
and Restated Credit Facilities&#8221;) consist of a $20 million unsecured term loan and an unsecured revolving credit facility,
under which the Company may borrow up to $50 million. The Amended and Restated Credit Agreement matures on February 1, 2023.&nbsp;The
proceeds borrowed pursuant to the Amended and Restated Credit Agreement may be used for general corporate purposes, as well as
permitted acquisitions. The Company&#8217;s obligations under the Amended and Restated Credit Agreement are guaranteed by the Subsidiary
Guarantors.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Amended and Restated Credit Agreement calls for interest of LIBOR plus a
margin that ranges from 1.0% to 1.5% or, at the discretion of the Company, the bank&#8217;s prime rate less a margin that ranges
from .25% to zero. In both cases the applicable margin is dependent upon Company performance.&nbsp;Under the Amended and Restated
Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded
debt to EBITDA financial covenant.&nbsp;The Amended and Restated Credit Agreement contains other covenants customary for transactions
of this type, including restrictions on certain payments, permitted indebtedness and permitted investments.&nbsp;As of December
31, 2019, the applicable interest rate was approximately 2.8% and the Company was in compliance with all covenants under the Amended
and Restated Credit Agreement.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 48; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->17<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Included in the Amended and Restated Credit Facilities were approximately $0.7
million in standby letters of credit as a financial guarantee on worker&#8217;s compensation insurance policies.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Long-term debt consists of the following (in thousands):</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left">Revolving credit facility</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">-</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">8,000</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">17,143</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Total long-term debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">25,143</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt">Current portion</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(2,857</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Long-term debt, excluding current portion</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">22,286</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"><i>Derivative Financial Instruments</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company used interest-rate-related derivative instruments to manage its
exposure related to changes in interest rates on certain of its variable-rate debt instruments. The Company does not enter into
derivative instruments for any purpose other than cash flow hedging. Derivative financial instruments expose the Company to credit
risk and market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract. When
the fair value of a derivative contract is positive, the counterparty owes the Company, creating credit risk for the Company. When
the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, in these circumstances the
Company is not exposed to the counterparty&#8217;s credit risk. The Company minimizes counterparty credit risk in derivative instruments
by entering into transactions with carefully selected major financial institutions based upon their credit profile. Market risk
is the adverse effect on the value of a derivative instrument that results from a change in interest rates.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company assesses interest rate risk by continually identifying and
monitoring changes in interest rate exposures that may adversely impact expected future cash flows and by evaluating hedging
opportunities. The Company&#8217;s debt obligations exposed the Company to variability in interest payments due to changes in
interest rates. The Company believed that it was prudent to limit the variability of a portion of its interest payments. To
meet this objective, in connection with the Amended and Restated Credit Agreement, the Company entered into a $20 million,
5-year interest rate swap agreement under which the Company receives three-month LIBOR plus the applicable margin and pays a
2.7% fixed rate plus the applicable margin. The swap modified the Company&#8217;s interest rate exposure by converting the
term loan from a variable rate to a fixed rate in order to hedge against the possibility of rising interest rates during the
term of the loan. The notional amount was $14,285,712 at December 31, 2019. The fair value of the swap as of December 31,
2019 was approximately $(325) thousand and is included in other liabilities. Changes in the fair value of the swap are
recorded in other income/expense and resulted in expense of approximately $388 thousand and income of $64 thousand during the
years ended December 31, 2019 and 2018, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">During the fourth quarter of 2019, the Company paid the remaining balance of
the term loan in its entirety. As a result, there is no longer underlying debt to hedge against with the swap. The changes in the
fair value of the swap will continue to be accounted for as a financial instrument until the sooner of the time that the Company
elects to cancel it or until its maturity.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 49; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->18<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(9)</b></td><td><b>Accrued Expenses</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Accrued expenses consist of the following (in thousands):</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left">Compensation</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">3,961</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">3,542</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Benefits / self-insurance reserve</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,033</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,153</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Paid time off</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,315</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,131</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt">Other</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,174</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">2,632</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">8,483</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">8,458</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(10)</b></td><td><b>Income Tax</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company&#8217;s income tax provision for the years ended December 31,
2019, 2018 and 2017 consists of the following (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">Current</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; width: 55%; font-size: 10pt">Federal</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">2,920</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">1,772</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">3,117</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">State</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">185</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">439</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">551</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,105</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,211</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,668</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">Deferred</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt">Federal</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">485</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,917</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,091</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">State</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">306</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(36</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">72</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">791</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,881</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(1,019</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total income tax provision</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">3,896</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">4,092</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,649</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 50; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->19<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><font style="font-size: 10pt">The approximate tax effects of temporary differences
that give rise to significant portions of the deferred tax assets and liabilities are as follows (in thousands):</font></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 0pt; font-size: 10pt; text-align: left">Deferred tax assets:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Reserves</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">362</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">367</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Inventory capitalization</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">396</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">421</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Compensation programs</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">578</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">447</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Retirement liability</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Equity-based compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">403</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">290</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Lease liability</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">795</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">11</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Intangible assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">73</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">141</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">State tax credits, net of federal impact</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">274</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">257</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Gross deferred tax assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,881</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,936</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Valuation allowance</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(136</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Net deferred tax assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,745</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,936</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 0pt; font-size: 10pt; text-align: left">Deferred tax liabilities:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Excess of book over tax basis of fixed assets</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(4,877</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(4,668</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Goodwill</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2,008</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1,397</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Right of use asset</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(781</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Total deferred tax liabilities</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(7,666</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(6,065</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Net long-term deferred tax liabilities</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">(4,921</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">(4,129</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><font style="font-size: 10pt"></font></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The amounts recorded as deferred tax assets as of December 31, 2019 and 2018,
represent the amount of tax benefits of existing deductible temporary differences or carryforwards that are more likely than not
to be realized through the generation of sufficient future taxable income within the carryforward period. The Company has gross
deferred tax assets of approximately $2.9 million at December 31, 2019, that it believes are more likely than not to be realized
in the carryforward period. Management reviews the recoverability of deferred tax assets during each reporting period. The Company
has provided a valuation allowance of approximately $136 thousand for deferred tax assets (net of federal tax benefit), primarily
related to tax credits generated in its 2018 Massachusetts state income tax return that are being carried forward to future periods.
The Company is uncertain as to whether it will have sufficient future taxable income in Massachusetts to utilize the credits prior
to their expiration date. The valuation allowance against the Company&#8217;s deferred tax assets may require adjustments in the
future based on changes in the mix of temporary difference, changes in tax laws, and operating performance.</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The Company has approximately $348 thousand of tax credit carryforwards related
to one state jurisdiction that expire between 2020 and 2033.</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 51; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->20<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The actual tax provision for the years presented differs from the &#8220;expected&#8221;
tax provision for those years, computed by applying the U.S. federal corporate rate of 21% to income before income tax expense
as follows:</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left">Computed &#8220;expected&#8221; tax rate</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">21.0</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">21.0</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">34.0</td><td style="width: 1%; font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Increase (decrease) in income taxes resulting from:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">State taxes, net of federal tax benefit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1.8</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">2.8</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3.5</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Meals and entertainment</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.2</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.2</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.3</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Tax credits</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(6.2</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1.9</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(0.6</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Domestic production deduction</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(2.6</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Non-deductible ISO stock option expense</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.1</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.1</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Unrecognized tax benefits</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(0.7</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Excess tax benefits on equity awards</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(0.7</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1.3</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(1.4</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Excess compensation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.6</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.8</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Impact on deferred taxes of new legislation</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(11.1</td><td style="font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Other</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.4</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.5</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.1</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Change in valuation allowance</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">0.1</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Effective tax rate</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">16.5</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">22.2</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">22.3</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The Company files income tax returns in the U.S. federal jurisdiction and
various state jurisdictions. The&nbsp;Company has not been audited by any state for income taxes with the exception of returns
filed in Michigan which have been audited through 2004, income tax returns filed in Massachusetts which have been audited through
2007, income tax returns filed in Florida which have been audited through 2009, income tax returns filed in New Jersey which have
been audited through 2012, and income tax returns in Colorado which have been audited through 2017. Federal and state tax returns
for the years 2016 through 2019 remain open to examination by the IRS and various state jurisdictions.</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">A reconciliation of the beginning and ending amount of gross unrecognized
tax benefits (&#8220;UTB&#8221;) resulting from uncertain tax positions is as follows (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt; text-align: left">Gross UTB balance at beginning of fiscal year</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">150</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">150</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Reductions for tax positions of prior years</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(150</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Gross UTB balance at end of fiscal year</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">150</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The total amount of unrecognized tax benefits that, if recognized, would
affect the effective tax rate as of December 31, 2019 and 2018 is $0 and $150 thousand, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">In addition, the total amount of accrued interest and penalties on uncertain
tax positions at December&nbsp;31, 2019 and 2018 is $0 and $153 thousand, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">At December 31, 2018, all of the unrecognized tax benefits related to tax
returns of a specific state jurisdiction that are currently under examination. On January 17, 2019 the Company came to an agreement
with the state and on February 21, 2019 the Company received a check in the amount of $156,000 as settlement of the unrecognized
tax benefits.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 52; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->21<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b></b></td></tr></table><div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top"><td style="width: 27.35pt"><b>(11)</b></td><td><b>Net Income Per Share</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Basic income per share is based upon the weighted average common shares outstanding
during each year. Diluted income per share is based upon the weighted average of common shares and dilutive common stock equivalent
shares outstanding during each year. The weighted average number of shares used to compute both basic and diluted income per share
consisted of the following (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left">Basic weighted average common shares outstanding during the year</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">7,424</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">7,347</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">7,248</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Weighted average common equivalent shares due to stock options and restricted stock units</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">92</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">83</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">89</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Diluted weighted average common shares outstanding during the year</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,516</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,430</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,337</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The computation of diluted earnings per share excludes the effect of the
potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the
exercise price of the related options during the period. These outstanding stock awards are not included in the computation of
diluted earnings per share because the effect would have been antidilutive.</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">For the years ended December 31, 2019, 2018 and 2017, the number of stock
awards excluded from the computation was 16,536, 10,344 and 27,336, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(12)</b></td><td><b>Stock Option and Equity Incentive Plans</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Share-based compensation is measured at the grant date based on the fair value
of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company issues share-based awards through several plans that are described
below. The compensation cost charged against income for those plans is included in selling, general &amp; administrative expenses
as follows (in thousands):</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><u>Share-based compensation related to:</u></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left">Common stock grants</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">400</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">505</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">505</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Stock option grants</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">151</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">149</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">138</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restricted Stock Unit awards</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">1,040</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">558</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">425</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total share-based compensation</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,591</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,212</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,068</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"><u>Incentive Plan</u></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">In June 2003, the Company formally adopted the 2003 Incentive Plan (the &ldquo;Plan&rdquo;).
As amended and restated to date, the Plan is intended to benefit the Company by offering equity-based and other incentives to
certain of the Company&rsquo;s executives and employees who are in a position to contribute to the long-term success and growth
of the Company, thereby encouraging the continuance of their involvement with the Company and/or its subsidiaries.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">Two types of equity awards may be granted to participants
under the Plan: restricted shares or other stock awards. Restricted shares are shares of common stock awarded subject to restrictions
and to possible forfeiture upon the occurrence of specified events. Other stock awards are awards that are denominated or payable
in, valued in whole or in part by reference to, or otherwise based on or related to, shares of common stock. Such awards may include
Restricted Stock Unit Awards (&ldquo;RSUs&rdquo;), unrestricted stock, incentive and non-qualified stock options, performance shares,
or stock appreciation rights. The Company determines the form, terms, and conditions, if any, of any awards made under the Plan.</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">Through December 31, 2019, 1,252,613 shares of common
stock have been issued under the 2003 Incentive Plan, none of which have been restricted. An additional 108,424 shares are being
reserved for outstanding grants of RSUs and other share-based compensation that are subject to various performance and time-vesting
contingencies. The Company has also granted awards in the form of stock options under this Plan. Through December 31, 2019, 185,000
options have been granted and 10,000 options are outstanding. At December 31, 2019, 803,244 shares or options are available for
future issuance in the 2003 Incentive Plan.</P>



<P STYLE="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 53; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->22<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"><u>Director Plan</u></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Effective July 15, 1998, the Company adopted the 1998 Director Plan, which was
amended and renamed, on June 3, 2009, the 2009 Non-Employee Director Stock Incentive Plan (the &#8220;Director Plan&#8221;). The
Director Plan was amended on March 7, 2013, to (i) prohibit the repricing of stock options or other equity awards without the consent
of the Company&#8217;s shareholders, and (ii) prohibit the Company from buying out underwater stock options. The Director Plan,
as amended, provides for the issuance of stock options and other equity-based securities of up to 975,000 shares to non-employee
members of the Company&#8217;s board of directors. Through December 31, 2019, 365,026 options have been granted and 95,614 options
are outstanding. For the year ended December 31, 2019, 5,442 RSUs are being reserved for outstanding grants of RSUs, and 79,648
shares remained available to be issued under the Director Plan.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following is a summary of stock option activity under all plans:</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; font-size: 10pt; text-align: center">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares Under<br>
 Options</td><td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><b>Weighted<br>
    Average<br>
    Exercise<br>
    Price</b><br>
    <font style="font-size: 10pt; font-style: normal; font-weight: 400">(per share)</font></td><td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><b>Weighted<br>
    Average<br>
    Remaining<br>
    Contractual<br>
    Life</b><br>
    <font style="font-size: 10pt; font-style: normal; font-weight: 400">(in years)</font></td><td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><b>Aggregate<br>
    Intrinsic<br>
    Value</b><br>
    <font style="font-size: 10pt; font-style: normal; font-weight: 400">(in thousands)</font></td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt">Outstanding December 31, 2018</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">134,043</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">20.46</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 10%; font-size: 10pt; text-align: right">&nbsp;</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td><td style="font-size: 10pt; text-align: right; width: 10%">&nbsp;</td><td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Granted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">16,536</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">38.61</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Exercised</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(44,965</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: right">15.68</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: right">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: right">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 2.5pt">Outstanding December 31, 2019</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">105,614</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">25.34</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">5.70</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,563</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.5pt">Exercisable at December 31, 2019</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">85,328</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">22.62</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">5.10</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,303</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Vested and expected to vest at December 31, 2019</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">105,614</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">25.34</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">5.70</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,563</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">During the years ended December 31, 2019, 2018 and 2017, the total intrinsic
value of all options exercised (i.e.,&nbsp;the difference between the market price and the price paid by the employees to exercise
the options) was approximately $1.0, $1.2 million and $0.6 million, respectively, and the total amount of consideration received
from the exercise of these options was approximately $0.7 million, $1.3 million and $0.8 million, respectively. At its discretion,
the Company allows option holders to surrender previously-owned common stock in lieu of paying the exercise price and withholding
taxes. During the years ended December 31, 2019 and 2018, no shares were surrendered for this purpose. During the year ended December&nbsp;31,
2017, 6,511 shares were surrendered to pay the exercise price at an average market price of $26.45.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">On February 19, 2019, the Company&#8217;s Compensation Committee approved the
award of $400 thousand payable in shares of the Company&#8217;s common stock to the Company&#8217;s Chairman, Chief Executive Officer,
and President under the 2003 Equity Incentive Plan. The shares were issued on December 12, 2019.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">On June 5, 2019 the Company issued 16,536 shares of unrestricted common stock
to the non-employee members of the Company&#8217;s Board of Directors as part of their annual retainer for serving on the Board.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 54; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->23<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company grants RSUs to its executive officers and employees. The stock
unit awards are subject to various time-based vesting requirements, and certain portions of these awards are subject to performance
criteria of the Company. Compensation expense on these awards is recorded based on the fair value of the award at the date of grant,
which is equal to the Company&#8217;s closing stock price, and is charged, to expense ratably during the service period. No compensation
expense is taken on awards that do not become vested, and the amount of compensation expense recorded is adjusted based on management&#8217;s
determination of the probability that these awards will become vested. The following table summarizes information about stock unit
award activity during the year ended December 31, 2019:</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted<br>
 Stock Units</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Weighted<br>
 Average Award<br>
 Date Fair Value</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt">Outstanding at December 31, 2018</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">72,996</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">23.60</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Awarded</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">64,701</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">33.55</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Shares vested</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(20,529</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">23.74</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Forfeitures</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(3,302</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: right">33.31</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.5pt">Outstanding at December 31, 2019</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">113,866</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left">$</td><td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: right">28.36</td><td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">At the Company&#8217;s discretion, RSU holders are given the option to net-share
settle to cover the required minimum withholding tax, and the remaining amount is converted into the equivalent number of common
shares. During the year ended December 31, 2019, 8,341 shares were redeemed for this purpose at an average market price of $33.69.
During the years ended December 31, 2018 and 2017, 5,238 and 4,377 shares were redeemed for this purpose at an average market price
of $27.60 and $24.50, respectively.</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The following summarizes the future share-based compensation expense the
Company will record as the equity securities granted through December 31, 2019, vest (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="margin: 0pt 0; text-indent: 1in"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Options</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted<br> Stock Units</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left">2020</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">116</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">999</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">1,115</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2021</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">746</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">746</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2022</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">409</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">409</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">2023</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">48</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">48</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">116</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,202</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2,318</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0; text-indent: 1in"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(13)</b></td><td><b>Leases</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company adopted ASC 842 - Leases (&#8220;ASC 842&#8221;) as of January
1, 2019, using the transition method wherein entities could initially apply the new leases standard at adoption date and recognize
a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption. Accordingly, all periods
prior to January 1, 2019 were presented in accordance with the previous ASC Topic 840, Leases, and no retrospective adjustments
were made to the comparative periods presented. The adoption of ASC 842 resulted in an increase to total assets due to the recording
of operating lease right-of-use ("ROU") assets and operating lease liabilities of approximately $4.0 million and $4.1
million, respectively, as of January 1, 2019. The Company did not have any finance leases at the adoption date. The adoption did
not materially impact the Company&#8217;s condensed consolidated statements of income or cash flows.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company has operating leases for offices, manufacturing plants, vehicles
and certain office and manufacturing equipment. Leases with an initial term of 12 months or less are not recorded on the balance
sheet. The Company has elected the practical expedient to account for each separate lease component of a contract and its associated
non-lease components as a single lease component, thus causing all fixed payments to be capitalized. The Company also elected the
package of practical expedients permitted within the new standard, which among other things, allows the Company to carry forward
historical lease classification. Variable lease payment amounts that cannot be determined at the commencement of the lease such
as increases in lease payments based on changes in index rates or usage, are not included in the ROU assets or operating lease
liabilities. These are expensed as incurred and recorded as variable lease expense. The Company determines if an arrangement is
a lease at the inception of a contract. Operating lease ROU assets and operating lease liabilities are stated separately in the
condensed consolidated balance sheet.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 55; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->24<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">ROU assets represent the Company's right to use an underlying asset during
the lease term and operating lease liabilities represent the Company's obligation to make lease payments arising from the lease.
ROU assets and operating lease liabilities are recognized at commencement date based on the net present value of fixed lease payments
over the lease term. The Company's lease term includes options to extend or terminate the lease when it is reasonably certain that
we will exercise that option. ROU assets will also be adjusted for any deferred or accrued rent. As the Company's operating leases
do not typically provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at
commencement date in determining the present value of lease payments. The Company&#8217;s incremental borrowing rate is based on
its borrowing rate under the Amended and Restated Credit Agreement, adjusted to reflect an estimated fixed rate for the term of
the underlying lease. Operating fixed lease expense is recognized on a straight-line basis over the lease term.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin-left: 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Year Ended</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">December 31, 2019</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: center">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">($ in thousands)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Lease cost:</td><td style="font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; width: 85%; font-size: 10pt">Operating</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">1,222</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Variable</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">219</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt">Short-term</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">27</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total lease cost</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,468</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Cash paid for amounts included in measurement of lease liabilities:</td><td>&nbsp;</td>
    <td style="text-align: left">&nbsp;</td><td style="text-align: right">&nbsp;</td><td style="text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt">Operating</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">1,208</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Weighted-average remaining lease term (years):</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Operating</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">2.69</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Weighted-average discount rate:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Operating</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">4.45</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The aggregate future lease payments for operating leases as of December 31, 2019 were as follows (in thousands):</p>



<p style="margin: 0">&nbsp;</p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin-left: 0.4in">
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 85%; font-size: 10pt; text-align: left">2020</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 12%; font-size: 10pt; text-align: right">1,173</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2021</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,118</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2022</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">957</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2023</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">36</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2024</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Thereafter</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Total lease payments</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,284</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Less: Interest</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(194</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; padding-bottom: 2.5pt">Present value of lease liabilities</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">3,090</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 56; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->25<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The aggregate future lease payments for operating leases as of December 31, 2018 were as follows (in thousands):</p>



<p style="margin: 0">&nbsp;</p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin-left: 0.4in">
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 85%; font-size: 10pt; text-align: left">2019</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">1,051</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2020</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,070</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">2021</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,063</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">2022</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">975</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">2023</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">36</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">4,195</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Rent expense amounted to approximately $1.2 million, $1.2 million, and $0.9
million, in 2019, 2018 and 2017, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(14)</b></td><td><b>Commitments and Contingencies</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27pt"></td><td style="width: 18pt">(a)</td><td><i><u>Leases</u></i> &#8211; The Company has operating leases for certain facilities that expire through 2023. Certain of the
leases contain escalation clauses that require payments of additional rent as well as increases in related operating costs. See
Note 13 for details on lease commitments.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</p>

<table cellpadding="0" cellspacing="0" width="100%" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 27pt"></td><td style="width: 18pt">(b)</td><td><i><u>Legal</u></i> &#8211; From time to time, the Company may be a party to various suits, claims and complaints arising in
the ordinary course of business. In the opinion of management of the Company, these suits, claims and complaints should not result
in final judgments or settlements that, in the aggregate, would have a material adverse effect on the Company&#8217;s financial
condition or results of operations.</td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(15)</b></td><td><b>Employee Benefit Plans</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company maintains a profit-sharing plan for eligible employees. Contributions
to the Plan are made in the form of matching contributions to employee 401(k) deferrals, as well as discretionary profit-sharing
amounts determined by the Board of Directors to be funded by March 15 following each fiscal year. Contributions to the Plan were
approximately $1.0 million, $1.1 million and $0.8 million for the years 2019, 2018 and 2017, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company has a partially self-insured health insurance program that covers
all eligible participating employees. The maximum liability is limited by a stop loss of $225 thousand per insured person, along
with an aggregate stop loss determined by the number of participants.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company has an Executive, Non-qualified &#8220;Excess&#8221; Plan (&#8220;the
Plan&#8221;), which is a deferred compensation plan available to certain executives. The Plan permits participants to defer receipt
of part of their current compensation to a later date as part of their personal retirement or financial planning. Participants
have an unsecured contractual commitment from the Company to pay amounts due under the Plan.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The compensation withheld from Plan participants, together with gains or losses
determined by the participants&#8217; deferral elections is reflected as a deferred compensation obligation to participants and
is classified within the liabilities section in the accompanying balance sheets. At December 31, 2019 and 2018, the balance of
the deferred compensation liability totaled approximately $2.8 million and $2.0 million, respectively. The related assets, which
are held in the form of a Company-owned, variable life insurance policy that names the Company as the beneficiary, are classified
within the other assets section of the accompanying balance sheets and are accounted for based on the underlying cash surrender
values of the policies and totaled approximately $2.8 million and $2.0 million as of December&nbsp;31, 2019 and 2018, respectively.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"></p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 57; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->26<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(16)</b></td><td><b>Fair Value of Financial Instruments</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Financial instruments recorded at fair value in the consolidated balance
sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs
used to measure their fair value. Hierarchical levels defined by ASC 820, <i>Fair Value Measurements and Disclosures</i>, and directly
related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><i>&nbsp;</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><i>Level 1</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Valued based on unadjusted, quoted prices in active markets for identical
assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for
the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><i>Level 2</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Valued based on either directly or indirectly observable prices for the asset
or liability through correlation with market data at the measurement date and for the duration of the instrument&#8217;s anticipated
life.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><i>Level 3</i></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Valued based on management&#8217;s best estimate of what market participants
would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation
technique and the risk inherent in the inputs to the model.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The following table presents the fair value and hierarchy levels, for financial
assets that are measured at fair value on a recurring basis (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0 0pt 0.5in">
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"><font style="font-size: 10pt"><u>Level 2</u></font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">December
    31,<br>
    2019</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt"><font style="font-size: 10pt">Assets:</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 35%; font-size: 10pt; text-align: left; text-indent: 10pt"><font style="font-size: 10pt">Derivative financial
    instruments</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">(325</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">)</font></td>
    <td style="background-color: White; width: 50%"><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Derivative financial instruments consist of an interest rate swap for which
fair value is determined through the use of a pricing model that utilizes verifiable inputs such as market interest rates that
are observable at commonly quoted intervals for the full term of the swap agreement.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company has financial instruments, such as accounts receivable, accounts
payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of
those instruments. The carrying amount of the Company&#8217;s long-term debt approximates fair value as the interest rate on the
debt approximates the estimated borrowing rate currently available to the Company.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0"></p><p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(17)</b></td><td><b>Segment Data</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company consists of a single operating and reportable segment.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Revenues from customers outside of the United States are not material. No customer
comprised more than 10% of the Company&#8217;s consolidated revenues for the year ended December 31, 2019. A vast majority of the
Company&#8217;s assets are located in the United States.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 58; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->27<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company&#8217;s custom products are primarily sold to customers within the
Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Sales by market for the years ended
December 31, 2019, 2018 and 2017 are as follows (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2019</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2018</font></td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><font style="font-size: 10pt">2017</font></td></tr>
<tr style="vertical-align: bottom">
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: left"><font style="font-size: 10pt">Market</font></td><td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><font style="font-size: 10pt">Net
    Sales</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><font style="font-size: 10pt">%</font></td><td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><font style="font-size: 10pt">Net
    Sales</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><font style="font-size: 10pt">%</font></td><td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><font style="font-size: 10pt">Net
    Sales</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><font style="font-size: 10pt">%</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 28%; font-size: 10pt"><font style="font-size: 10pt">Medical</font></td><td style="width: 3%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 8%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">128,915</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 8%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">65.0</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="width: 3%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 8%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">110,282</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 8%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">57.9</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="width: 3%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 8%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">70,090</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="width: 8%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">47.4</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt"><font style="font-size: 10pt">Automotive</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">20,004</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">10.1</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">20,022</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">10.5</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">23,119</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">15.6</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt"><font style="font-size: 10pt">Consumer</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">17,669</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">8.9</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">24,989</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">13.1</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">21,328</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">14.4</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">Aerospace &amp; Defense</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">13,778</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">6.9</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">13,130</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">6.9</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">11,521</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">7.8</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt"><font style="font-size: 10pt">Industrial</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">9,607</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">4.8</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">10,579</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">5.6</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">9,826</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">6.6</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-bottom: 1pt; font-size: 10pt"><font style="font-size: 10pt">Electronics</font></td><td style="padding-bottom: 1pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">8,408</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">4.2</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="padding-bottom: 1pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">11,453</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">6.0</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="padding-bottom: 1pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">11,959</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">8.1</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left; text-indent: 10pt"><font style="font-size: 10pt">Net
    Sales</font></td><td style="padding-bottom: 2.5pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">198,381</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">100.0</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="padding-bottom: 2.5pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">190,455</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">100.0</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td><td style="padding-bottom: 2.5pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">147,843</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">100.0</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">%</font></td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Certain amounts for the years ended December 31, 2018 and 2017 were reclassified
between markets to conform to the current year presentation.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 27pt"></p>

<table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b></b></td></tr></table><div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top"><td style="width: 27.35pt"><b>(18)</b></td><td><b>Quarterly Financial Information (unaudited)</b></td></tr></table>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Summarized quarterly financial data is as follows (in thousands, except per
share data):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q1</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q2</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q3</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q4</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt; text-align: left">Net sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">47,328</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">51,399</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">49,394</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">50,260</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Gross profit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12,497</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">14,371</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">13,321</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">13,770</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Net income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,734</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,598</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,641</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">5,777</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Basic net income per share</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.50</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.62</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.76</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.78</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Diluted net income per share</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.50</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.62</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.75</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.76</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q1</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q2</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q3</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q4</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 48%; font-size: 10pt; text-align: left">Net sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">42,931</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">49,019</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">47,808</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 10%; font-size: 10pt; text-align: right">50,697</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Gross profit</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">10,185</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12,986</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12,431</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">12,706</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Net income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">1,777</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">3,990</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,134</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">4,410</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Basic net income per share</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.24</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.54</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.56</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.60</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Diluted net income per share</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.24</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.54</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.56</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">0.59</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p></div><p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-statement-type="note"><table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top">
<td style="width: 0"></td><td style="width: 27.35pt"><b>(19)</b></td><td><b>Acquisition</b></td></tr></table>

<p style="font-size: 10pt; margin: 0pt 0; text-indent: 27pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">On February 1, 2018 the Company purchased 100% of the outstanding shares of
common stock of Dielectrics Inc., pursuant to a stock purchase agreement and related agreements, for an aggregate purchase price
of $80&nbsp;million in cash. The purchase price was subject to adjustment based upon Dielectrics&#8217; working capital at closing.
An additional $250 thousand of consideration was paid by the Company as a result of the final working capital adjustment. A portion
of the purchase price is being held in escrow to indemnify the Company against certain claims, losses and liabilities. The Purchase
Agreement contains customary representations, warranties and covenants customary for transactions of this type.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">Founded in 1954 and based in Chicopee, Massachusetts, Dielectrics is a leader
in the design, development, and manufacture of medical devices using thermoplastic materials. They primarily use radio frequency
and impulse welding to design and manufacture solutions for the medical industry. The Company has leased the Chicopee location
from a realty trust owned by the selling shareholder and affiliates. The lease is for five years with two five-year renewal options.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<!-- Field: Page; Sequence: 59; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->28<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">The following table summarizes the allocation of consideration paid to the acquisition
date fair value of the assets acquired and liabilities assumed based on management&#8217;s estimates of fair value (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 0pt; font-size: 10pt"><font style="font-size: 10pt">Consideration Paid:</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td colspan="3" style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; width: 35%; font-size: 10pt; text-align: left">Cash paid at closing</td><td style="width: 1%; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="width: 12%; font-size: 10pt; text-align: right"><font style="font-size: 10pt">80,000</font></td><td style="width: 1%; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White; width: 50%"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Working capital adjustment</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">250</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Cash from Dielectrics</td><td style="font-size: 10pt; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">(3,272</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">)</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 0pt; font-size: 10pt"><font style="font-size: 10pt">Total consideration</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">76,978</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 0pt; font-size: 10pt"><font style="font-size: 10pt">Purchase Price Allocation:</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accounts receivable</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">4,384</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Inventory</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">4,418</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Other current assets</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">122</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Property, plant and equipment</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">4,600</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Customer list</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">22,555</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Non-compete</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">462</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 0pt; font-size: 10pt">Trade name and brand</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">367</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; padding-bottom: 1pt">Goodwill</td><td style="font-size: 10pt; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">44,516</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><font style="font-size: 10pt">Total identifiable assets</font></td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">81,424</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accounts payable</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">(1,325</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">)</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accrued expenses</td><td style="font-size: 10pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="font-size: 10pt; text-align: right"><font style="font-size: 10pt">(946</font></td><td style="font-size: 10pt; text-align: left"><font style="font-size: 10pt">)</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Deferred revenue</td><td style="font-size: 10pt; padding-bottom: 1pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><font style="font-size: 10pt">(2,175</font></td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><font style="font-size: 10pt">)</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 0pt; font-size: 10pt"><font style="font-size: 10pt">Net assets acquired</font></td><td style="font-size: 10pt; padding-bottom: 2.5pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">$</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><font style="font-size: 10pt">76,978</font></td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="background-color: White"><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>



<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 45pt"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">Acquisition costs associated with the transaction were approximately $1.1 million
and were charged to expense in the year ended December 31, 2018. These costs were primarily for investment banking and legal fees
and are reflected on the face of the income statement.</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The following table contains an unaudited pro forma condensed consolidated
statement of operations for the years ended December 31, 2018 and 2017, as if the Dielectrics acquisition had occurred at the beginning
of each of the respective periods (in thousands):</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</p>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 90%; margin: 0pt 0pt 0pt 0.4in">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Year Ended December 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">(Unaudited)</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; text-align: center">(Unaudited)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt">Sales</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">193,510</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">180,419</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left">Operating Income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">19,464</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">18,990</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Net Income</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">14,110</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">13,126</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt">Earnings per share:</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">&nbsp;</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt">Basic</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.92</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.81</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt">Diluted</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.90</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1.79</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The above unaudited pro forma information is presented for illustrative purposes
only and may not be indicative of the results of operations that would have occurred had the Dielectrics acquisition occurred as
presented. In addition, future results may vary significantly from the results reflected in such pro&nbsp;forma information.</p>

<p style="font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0 0pt 0.5in"></p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<!-- Field: Page; Sequence: 60; Value: 1 -->
    <div style="margin-top: 6pt; margin-bottom: 6pt; border-bottom: Black 4pt solid"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 10pt"><tr style="vertical-align: top; text-align: left"><td style="text-align: center; width: 100%">F-<!-- Field: Sequence; Type: Arabic; Name: PageNo -->29<!-- Field: /Sequence --></td></tr></table></div>
    <div style="page-break-before: always; margin-top: 6pt; margin-bottom: 6pt"><p style="margin: 0pt"></p></div>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: right; margin: 0pt 0"><a name="a_008"></a></p><div data-td-statement-type="note"><p style="font-size: 10pt; text-align: right; margin: 0pt 0">Schedule II</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>UFP TECHNOLOGIES, INC.</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>Consolidated Financial Statement Schedule</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0"><b>&nbsp;</b></p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">Valuation and Qualifying Accounts</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">Years ended December 31, 2019, 2018 and 2017</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">Accounts receivable, allowance for doubtful accounts:</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td><td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 55%; font-size: 10pt; text-align: left">Balance at beginning of year</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">564</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">652</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="width: 1%; font-size: 10pt; text-align: left">$</td><td style="width: 12%; font-size: 10pt; text-align: right">567</td><td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Provision for bad debt</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(52</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(50</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">116</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Write-offs, net of recoveries</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(26</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(38</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">(31</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Balance at end of year</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">486</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">564</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td>
    <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">652</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



<p style="margin: 0pt 0; font-size: 10pt"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p></div><p style="font-size: 10pt; margin: 0pt 0"></p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; margin: 0pt 0">&nbsp;</p>

<p style="font-size: 10pt; text-align: right; margin: 0pt 0">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: right">&nbsp;</p>

<p style="margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt; text-align: center">F-30</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: right"></p>

<!-- Field: Rule-Page --><div style="margin: 3pt auto; width: 100%"><div style="font-size: 1pt; border-top: Black 4pt solid">&nbsp;</div></div><!-- Field: /Rule-Page -->

<p style="margin: 0pt 0; font-size: 10pt; text-align: right"></p>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21.01
<SEQUENCE>2
<FILENAME>exh_2101.htm
<DESCRIPTION>EXHIBIT 21.01
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0"><U>Exhibit 21.01</U></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">UFP Technologies, Inc. wholly owns the following companies:</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt"></P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">1.</TD>
    <TD COLSPAN="2">Moulded Fibre Technology, Inc., a Maine company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">2.</TD>
    <TD COLSPAN="2">Simco Industries, Inc., a Michigan company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">3.</TD>
    <TD COLSPAN="2">Dielectrics, Inc., a Massachusetts company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">4.</TD>
    <TD COLSPAN="2">UFP Realty LLC, a Massachusetts limited liability company, and its wholly-owned subsidiaries:</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center; width: 4%">&nbsp;</TD>
    <TD STYLE="text-align: center; width: 4%">a.</TD>
    <TD STYLE="width: 92%">UFPT MA, LLC, a Massachusetts limited liability company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">&nbsp;</TD>
    <TD STYLE="text-align: center">b.</TD>
    <TD>UFP CO, LLC, a Colorado limited liability company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">&nbsp;</TD>
    <TD STYLE="text-align: center">c.</TD>
    <TD>UFP FL, LLC, a Florida limited liability company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">&nbsp;</TD>
    <TD STYLE="text-align: center">d.</TD>
    <TD>UFP TX, LLC, a Texas limited liability company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">&nbsp;</TD>
    <TD STYLE="text-align: center">e.</TD>
    <TD>UFP MI, LLC, a Michigan limited liability company</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="text-align: center">&nbsp;</TD>
    <TD STYLE="text-align: center">f.</TD>
    <TD>UFP IA, LLC, an Iowa limited liability company</TD></TR>
</TABLE>

<P STYLE="margin: 0pt 0; font-size: 10pt">&nbsp;</P>


<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 0.25in">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>



<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 4pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.01
<SEQUENCE>3
<FILENAME>exh_2301.htm
<DESCRIPTION>EXHIBIT 23.01
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0"><U>Exhibit 23.01</U></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">We have issued our reports dated March 13, 2020, with respect to the consolidated financial
statements and internal controls over financial reporting included in the Annual Report of UFP Technologies, Inc. on Form 10-K
for the year ended December 31, 2018. We hereby consent to the incorporation by reference of said reports in the Registration Statements
of UFP Technologies, Inc. on Forms S-8 (File No. 333-174907, File No. 333-151883, File No. 333-143673, File No. 333-116436, File
No. 333-56741, File No. 333-91408, and File No. 333-106390).</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">/s/ GRANT THORNTON LLP</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Boston, MA</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">March 13, 2020<BR STYLE="clear: both">
</P>



<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 4pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.01
<SEQUENCE>4
<FILENAME>exh_3101.htm
<DESCRIPTION>EXHIBIT 31.01
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0"><U>Exhibit 31.01</U></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Certification Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">I, R. Jeffrey Bailly, President and Chief Executive Officer of UFP Technologies, Inc.,
certify that:</P>

<P STYLE="margin: 0pt 0; font-size: 10pt">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">1.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">I have reviewed this annual report on Form 10-K of UFP Technologies, Inc.;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">2.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Based on my knowledge, this report does not contain any untrue statement of a material
fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements
were made, not misleading with respect to the period covered by this report;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">3.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Based on my knowledge, the financial statements, and other financial information included
in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant
as of, and for, the periods presented in this report;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">4.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">The registrant&rsquo;s other certifying officer(s) and I are responsible for establishing
and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control
over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">a.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Designed such disclosure controls and procedures, or caused such disclosure controls
and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including
its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this
report is being prepared;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">b.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Designed such internal control over financial reporting, or caused such internal control
over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial
reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">c.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Evaluated the effectiveness of the registrant&rsquo;s disclosure controls and procedures
and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end
of the period covered by this report based on such evaluation; and</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">d.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Disclosed in this report any change in the registrant&rsquo;s internal control over
financial reporting that occurred during the registrant&rsquo;s most recent fiscal quarter (the registrant&rsquo;s fourth fiscal
quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&rsquo;s
internal control over financial reporting; and</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">5.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">The registrant&rsquo;s other certifying officer(s) and I have disclosed, based on
our most recent evaluation of internal control over financial reporting, to the registrant&rsquo;s auditors and the audit committee
of the registrant&rsquo;s board of directors (or persons performing the equivalent functions):</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">a.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">All significant deficiencies and material weaknesses in the design or operation of
internal control over financial reporting which are reasonably likely to adversely affect the registrant&rsquo;s ability to record,
process, summarize and report financial information; and</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">b.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Any fraud, whether or not material, that involves management or other employees who
have a significant role in the registrant&rsquo;s internal control over financial reporting.</TD>
</TR></TABLE>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt"></P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="border-bottom: Black 1pt solid; width: 33%">March 13, 2020</TD>
    <TD STYLE="width: 34%">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid; width: 33%">/s/&nbsp;&nbsp;&nbsp;<I>R. Jeffrey Bailly</I></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>Date</TD>
    <TD>&nbsp;</TD>
    <TD>R. Jeffrey Bailly</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Chairman, Chief Executive Officer, <BR>
President, and Director <BR>
(Principal Executive Officer)</TD></TR>
</TABLE>

<P STYLE="margin: 0pt 0; font-size: 10pt">&nbsp;</P>

<P STYLE="margin: 0"></P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 4pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.02
<SEQUENCE>5
<FILENAME>exh_3102.htm
<DESCRIPTION>EXHIBIT 31.02
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0"><U>Exhibit 31.02</U></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">Certification Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">I, Ronald J. Lataille, Chief Financial Officer of UFP Technologies, Inc., certify that:</P>

<P STYLE="margin: 0pt 0; font-size: 10pt">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">1.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">I have reviewed this annual report on Form 10-K of UFP Technologies, Inc.;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">2.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Based on my knowledge, this report does not contain any untrue statement of a material
fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements
were made, not misleading with respect to the period covered by this report;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">3.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Based on my knowledge, the financial statements, and other financial information included
in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant
as of, and for, the periods presented in this report;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">4.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">The registrant&rsquo;s other certifying officer(s) and I are responsible for establishing
and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control
over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">a.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Designed such disclosure controls and procedures, or caused such disclosure controls
and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including
its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this
report is being prepared;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">b.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Designed such internal control over financial reporting, or caused such internal control
over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial
reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">c.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Evaluated the effectiveness of the registrant&rsquo;s disclosure controls and procedures
and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end
of the period covered by this report based on such evaluation; and</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">d.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Disclosed in this report any change in the registrant&rsquo;s internal control over
financial reporting that occurred during the registrant&rsquo;s most recent fiscal quarter (the registrant&rsquo;s fourth fiscal
quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&rsquo;s
internal control over financial reporting; and</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 15pt; text-align: left">5.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">The registrant&rsquo;s other certifying officer(s) and I have disclosed, based on
our most recent evaluation of internal control over financial reporting, to the registrant&rsquo;s auditors and the audit committee
of the registrant&rsquo;s board of directors (or persons performing the equivalent functions):</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">a.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">All significant deficiencies and material weaknesses in the design or operation of
internal control over financial reporting which are reasonably likely to adversely affect the registrant&rsquo;s ability to record,
process, summarize and report financial information; and</TD>
</TR></TABLE>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 6pt; width: 100%"><TR STYLE="vertical-align: top; text-align: justify">
<TD STYLE="width: 35pt; text-align: right">b.</TD><TD STYLE="width: 5pt"></TD><TD STYLE="text-align: justify">Any fraud, whether or not material, that involves management or other employees who
have a significant role in the registrant&rsquo;s internal control over financial reporting.</TD>
</TR></TABLE>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt"></P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="border-bottom: Black 1pt solid; width: 33%">March 13, 2020</TD>
    <TD STYLE="width: 34%">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid; width: 33%"> /s/&nbsp;&nbsp;&nbsp;<I>Ronald J. Lataille</I></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>Date</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Ronald J. Lataille <BR>
Chief Financial Officer<BR>
 (Principal Financial Officer)</TD></TR>
</TABLE>

<P STYLE="margin: 0pt 0; font-size: 10pt"></P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 4pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.01
<SEQUENCE>6
<FILENAME>exh_3201.htm
<DESCRIPTION>EXHIBIT 32.01
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="font-size: 10pt; text-align: right; margin: 0pt 0"><U>Exhibit 32.01</U></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">CERTIFICATION</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</B></P>

<P STYLE="font-size: 10pt; text-align: center; margin: 0pt 0"><B>(Subsections (a) and (b) of Section 1350, Chapter 63 of Title
18, United States Code)</B></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (subsections
(a) and (b) of Section 1350, Chapter 63 of Title 18, United States Code), the undersigned officers of UFP Technologies, Inc., a
Delaware corporation (the &ldquo;Company&rdquo;), do hereby certify, to the best of such officers&rsquo; knowledge and belief,
that:</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Annual Report on
Form 10-K for the year ended December 31, 2019, (the &ldquo;Form 10-K&rdquo;) of the Company fully complies with the requirements
of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; text-indent: 0.5in; margin: 0pt 0">(2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The information contained
in the Form 10-K fairly presents, in all materials respects, the financial condition and results of operations of the Company.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<TABLE CELLPADDING="0" CELLSPACING="0" STYLE="border-collapse: collapse; font: 10pt Times New Roman, Times, Serif; width: 100%">
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="border-bottom: Black 1pt solid; width: 33%">March 13, 2020</TD>
    <TD STYLE="width: 34%">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid; width: 33%"> /s/&nbsp;&nbsp;&nbsp;<I>R. Jeffrey Bailly</I></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>Date</TD>
    <TD>&nbsp;</TD>
    <TD>R. Jeffrey Bailly <BR>
Chairman, Chief Executive Officer, <BR>
President, and Director <BR>
(Principal Executive Officer)</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="border-bottom: Black 1pt solid">March 13, 2020</TD>
    <TD>&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid">/s/&nbsp;&nbsp;&nbsp;<I>Ronald
J. Lataille</I></TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD>Date</TD>
    <TD>&nbsp;</TD>
    <TD>Ronald J. Lataille<BR>
 Chief Financial
Officer<BR>
 (Principal Financial Officer)</TD></TR>
</TABLE>

<P STYLE="margin: 0pt 0; font-size: 10pt"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt">&nbsp;</P>

<P STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"></P>

<P STYLE="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><FONT STYLE="font-size: 10pt"></FONT></P>


<P STYLE="font-size: 10pt; margin: 0pt 0 0pt 3in"></P>

<P STYLE="font-size: 10pt; margin: 0pt 0">A signed original of this written statement required by Section 906 of the Sarbanes-Oxley
Act of 2002 has been provided to UFP Technologies, Inc. and will be retained by UFP Technologies, Inc. and furnished to the Securities
and Exchange Commission or its staff upon request.</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>

<P STYLE="font-size: 10pt; margin: 0pt 0">&nbsp;</P>



<P STYLE="margin: 0"></P>

<!-- Field: Rule-Page --><DIV STYLE="margin: 3pt auto; width: 100%"><DIV STYLE="font-size: 1pt; border-top: Black 4pt solid">&nbsp;</DIV></DIV><!-- Field: /Rule-Page -->

<P STYLE="margin: 0"></P>

</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.INS
<SEQUENCE>7
<FILENAME>ufpt-20191231.xml
<DESCRIPTION>XBRL INSTANCE FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 12:32AM UTC 2020-03-13--><xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns="http://www.xbrl.org/2003/instance" xmlns:country="http://xbrl.sec.gov/country/2017-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2018-01-31" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:srt="http://fasb.org/srt/2019-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:thunderdome="http://www.RDGFilings.com" xmlns:ufpt="http://www.ufpt.com/20191231" xmlns:us-gaap="http://fasb.org/us-gaap/2019-01-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <link:schemaRef xlink:href="ufpt-20191231.xsd" xlink:type="simple"/>
  <dei:AmendmentFlag contextRef="d_2019-01-01_2019-12-31" id="c-51">false</dei:AmendmentFlag>
  <dei:CurrentFiscalYearEndDate contextRef="d_2019-01-01_2019-12-31" id="c-36">--12-31</dei:CurrentFiscalYearEndDate>
  <dei:DocumentFiscalPeriodFocus contextRef="d_2019-01-01_2019-12-31" id="c-50">FY</dei:DocumentFiscalPeriodFocus>
  <dei:DocumentFiscalYearFocus contextRef="d_2019-01-01_2019-12-31" id="c-49">2019</dei:DocumentFiscalYearFocus>
  <dei:DocumentPeriodEndDate contextRef="d_2019-01-01_2019-12-31" id="c-48">2019-12-31</dei:DocumentPeriodEndDate>
  <dei:DocumentType contextRef="d_2019-01-01_2019-12-31" id="c-47">10-K</dei:DocumentType>
  <dei:EntityCentralIndexKey contextRef="d_2019-01-01_2019-12-31" id="c-34">0000914156</dei:EntityCentralIndexKey>
  <dei:EntityCommonStockSharesOutstanding contextRef="i_2020-03-05" decimals="INF" id="c-44" unitRef="xbrli-shares">7463260</dei:EntityCommonStockSharesOutstanding>
  <dei:EntityCurrentReportingStatus contextRef="d_2019-01-01_2019-12-31" id="c-38">Yes</dei:EntityCurrentReportingStatus>
  <dei:EntityEmergingGrowthCompany contextRef="d_2019-01-01_2019-12-31" id="c-41">false</dei:EntityEmergingGrowthCompany>
  <dei:EntityFilerCategory contextRef="d_2019-01-01_2019-12-31" id="c-37">Accelerated Filer</dei:EntityFilerCategory>
  <dei:EntityInteractiveDataCurrent contextRef="d_2019-01-01_2019-12-31" id="c-43">Yes</dei:EntityInteractiveDataCurrent>
  <dei:EntityPublicFloat contextRef="i_2019-06-28" decimals="0" id="c-45" unitRef="iso4217-usd">279729924</dei:EntityPublicFloat>
  <dei:EntityRegistrantName contextRef="d_2019-01-01_2019-12-31" id="c-33">UFP TECHNOLOGIES INC</dei:EntityRegistrantName>
  <dei:EntityShellCompany contextRef="d_2019-01-01_2019-12-31" id="c-46">false</dei:EntityShellCompany>
  <dei:EntitySmallBusiness contextRef="d_2019-01-01_2019-12-31" id="c-42">true</dei:EntitySmallBusiness>
  <dei:EntityVoluntaryFilers contextRef="d_2019-01-01_2019-12-31" id="c-39">No</dei:EntityVoluntaryFilers>
  <dei:EntityWellKnownSeasonedIssuer contextRef="d_2019-01-01_2019-12-31" id="c-40">No</dei:EntityWellKnownSeasonedIssuer>
  <dei:Security12bTitle contextRef="d_2019-01-01_2019-12-31" id="c-52">Common Stock</dei:Security12bTitle>
  <dei:TradingSymbol contextRef="d_2019-01-01_2019-12-31" id="c-35">ufpt</dei:TradingSymbol>
  <srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470509">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font-size: 10pt; text-align: right; margin: 0pt 0"&gt;Schedule II&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;UFP TECHNOLOGIES, INC.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Consolidated Financial Statement Schedule&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;Valuation and Qualifying Accounts&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;Years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;Accounts receivable, allowance for doubtful accounts:&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Balance at beginning of year&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;564&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;652&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;567&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Provision for bad debt&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(52&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Write-offs, net of recoveries&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(26&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(38&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(31&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Balance at end of year&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;486&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;564&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;652&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock>
  <ufpt:AggregateDeferredTaxLiabilitiesNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c57541829" unitRef="iso4217-usd">4921000</ufpt:AggregateDeferredTaxLiabilitiesNoncurrent>
  <ufpt:AggregateDeferredTaxLiabilitiesNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c57541830" unitRef="iso4217-usd">4129000</ufpt:AggregateDeferredTaxLiabilitiesNoncurrent>
  <ufpt:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-4" id="c57542180" unitRef="iso4217-usd">250000</ufpt:BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment>
  <ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542204" unitRef="iso4217-usd">81424000</ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill>
  <ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542206" unitRef="iso4217-usd">946000</ufpt:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities>
  <ufpt:CashlessExerciseOfStockOptions contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541594" unitRef="iso4217-usd">0</ufpt:CashlessExerciseOfStockOptions>
  <ufpt:CashlessExerciseOfStockOptions contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541595" unitRef="iso4217-usd">0</ufpt:CashlessExerciseOfStockOptions>
  <ufpt:CashlessExerciseOfStockOptions contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541596" unitRef="iso4217-usd">172000</ufpt:CashlessExerciseOfStockOptions>
  <ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541585" unitRef="iso4217-usd">831000</ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized>
  <ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541586" unitRef="iso4217-usd">301000</ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized>
  <ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541577" unitRef="iso4217-usd">3216000</ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers>
  <ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541578" unitRef="iso4217-usd">4188000</ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541227" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c57541228" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541229" unitRef="iso4217-usd">-71000</ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541231" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541232" unitRef="iso4217-usd">-71000</ufpt:CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption>
  <ufpt:DeferredTaxAssetsLeaseLiability contextRef="i_2019-12-31" decimals="-3" id="c57541808" unitRef="iso4217-usd">795000</ufpt:DeferredTaxAssetsLeaseLiability>
  <ufpt:DeferredTaxAssetsLeaseLiability contextRef="i_2018-12-31" decimals="-3" id="c57541809" unitRef="iso4217-usd">11000</ufpt:DeferredTaxAssetsLeaseLiability>
  <ufpt:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541802" unitRef="iso4217-usd">578000</ufpt:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent>
  <ufpt:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541803" unitRef="iso4217-usd">447000</ufpt:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent>
  <ufpt:DeferredTaxLiabilitiesRightOfUseAsset contextRef="i_2019-12-31" decimals="-3" id="c57541825" unitRef="iso4217-usd">781000</ufpt:DeferredTaxLiabilitiesRightOfUseAsset>
  <ufpt:DeferredTaxLiabilitiesRightOfUseAsset contextRef="i_2018-12-31" id="c57541826" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541853" unitRef="xbrli-pure">-0.007</ufpt:EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent>
  <ufpt:EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541854" unitRef="xbrli-pure">-0.013</ufpt:EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent>
  <ufpt:EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541855" unitRef="xbrli-pure">-0.014</ufpt:EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent>
  <ufpt:EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541850" unitRef="xbrli-pure">-0.007</ufpt:EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments>
  <ufpt:EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments contextRef="d_2018-01-01_2018-12-31" id="c57541851" unitRef="xbrli-pure" xs:nil="true"/>
  <ufpt:EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments contextRef="d_2017-01-01_2017-12-31" id="c57541852" unitRef="xbrli-pure" xs:nil="true"/>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c57541995" unitRef="iso4217-usd">116000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c57541996" unitRef="iso4217-usd">999000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths contextRef="i_2019-12-31" decimals="-3" id="c57541997" unitRef="iso4217-usd">1115000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c57542004" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c57542005" unitRef="iso4217-usd">48000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour contextRef="i_2019-12-31" decimals="-3" id="c57542006" unitRef="iso4217-usd">48000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c57542001" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c57542002" unitRef="iso4217-usd">409000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree contextRef="i_2019-12-31" decimals="-3" id="c57542003" unitRef="iso4217-usd">409000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c57541998" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c57541999" unitRef="iso4217-usd">746000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo>
  <ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo contextRef="i_2019-12-31" decimals="-3" id="c57542000" unitRef="iso4217-usd">746000</ufpt:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo>
  <ufpt:NumberOfLeaseTermOptions contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c57542184" unitRef="xbrli-pure">2</ufpt:NumberOfLeaseTermOptions>
  <ufpt:ProceedsFromStockOptionsExercisedNet contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541356" unitRef="iso4217-usd">705000</ufpt:ProceedsFromStockOptionsExercisedNet>
  <ufpt:ProceedsFromStockOptionsExercisedNet contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541357" unitRef="iso4217-usd">1270000</ufpt:ProceedsFromStockOptionsExercisedNet>
  <ufpt:ProceedsFromStockOptionsExercisedNet contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541358" unitRef="iso4217-usd">677000</ufpt:ProceedsFromStockOptionsExercisedNet>
  <ufpt:PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-2">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.65in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Leasehold improvements&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center"&gt;Shorter of estimated useful life &lt;br /&gt; or remaining lease term&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; width: 63%"&gt;Buildings and improvements (in years)&lt;/td&gt; &lt;td style="font-size: 10pt; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;- &lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;40&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Machinery &amp;amp; equipment (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Furniture, fixtures, computers &amp;amp; software (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</ufpt:PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-MedicalMember" decimals="3" id="c57542095" unitRef="xbrli-pure">0.65</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-MedicalMember" decimals="3" id="c57542097" unitRef="xbrli-pure">0.579</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-MedicalMember" decimals="3" id="c57542099" unitRef="xbrli-pure">0.474</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c57542101" unitRef="xbrli-pure">0.101</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c57542103" unitRef="xbrli-pure">0.105</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c57542105" unitRef="xbrli-pure">0.156</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-ConsumerMember" decimals="3" id="c57542107" unitRef="xbrli-pure">0.089</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-ConsumerMember" decimals="3" id="c57542109" unitRef="xbrli-pure">0.131</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-ConsumerMember" decimals="3" id="c57542111" unitRef="xbrli-pure">0.144</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c57542113" unitRef="xbrli-pure">0.069</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c57542115" unitRef="xbrli-pure">0.069</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c57542117" unitRef="xbrli-pure">0.078</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-IndustrialMember" decimals="3" id="c57542119" unitRef="xbrli-pure">0.048</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-IndustrialMember" decimals="3" id="c57542121" unitRef="xbrli-pure">0.056</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-IndustrialMember" decimals="3" id="c57542123" unitRef="xbrli-pure">0.066</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c57542125" unitRef="xbrli-pure">0.042</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c57542127" unitRef="xbrli-pure">0.06</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c57542129" unitRef="xbrli-pure">0.081</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57542131" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57542133" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57542135" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-20">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; color: #8497B0; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Share-based compensation related to:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Common stock grants&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;400&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;505&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;505&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Stock option grants&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;151&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;149&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;138&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Restricted Stock Unit awards&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,040&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;558&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;425&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total share-based compensation&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,591&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,212&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,068&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock>
  <ufpt:ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-23">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Options&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Restricted&lt;br /&gt; Stock Units&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;999&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,115&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;746&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;746&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;409&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;409&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;48&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;48&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,202&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,318&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</ufpt:ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock>
  <ufpt:SelfIinsuredHealthInsuranceProgramStopLossAmount contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542070" unitRef="iso4217-usd">225000</ufpt:SelfIinsuredHealthInsuranceProgramStopLossAmount>
  <ufpt:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants contextRef="d_2019-01-01_2019-12-31_PlanNameAxis-The2003IncentivePlanMember" decimals="INF" id="c57541901" unitRef="xbrli-shares">185000</ufpt:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants>
  <ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541931" unitRef="xbrli-shares">0</ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation>
  <ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541934" unitRef="xbrli-shares">6511</ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation>
  <ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541930" unitRef="xbrli-shares">0</ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation>
  <ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541935" unitRef="iso4217-usd-per-xbrli-shares">26.45</ufpt:SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice>
  <ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541943" unitRef="iso4217-usd-per-xbrli-shares">33.69</ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice>
  <ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541947" unitRef="iso4217-usd-per-xbrli-shares">27.60</ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice>
  <ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541948" unitRef="iso4217-usd-per-xbrli-shares">24.50</ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice>
  <ufpt:ShippingAndHandlingCostsPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543395">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(m)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Shipping and Handling Costs&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Costs incurred related to shipping and handling are included in cost of sales. Amounts charged to customers pertaining to these costs are included in net sales.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</ufpt:ShippingAndHandlingCostsPolicyTextBlock>
  <ufpt:StockholdersEquityTreasuryStockPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543398">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(p)&amp;nbsp;&amp;nbsp; Treasury Stock&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company accounts for treasury stock under the cost method, using the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-in, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt; out flow assumption, and we include treasury stock as a component of stockholders&amp;#x2019; equity. The Company did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; repurchase any shares of common stock during the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</ufpt:StockholdersEquityTreasuryStockPolicyTextBlock>
  <ufpt:SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-32">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Balance at beginning of year&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;564&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;652&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;567&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Provision for bad debt&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(52&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Write-offs, net of recoveries&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(26&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(38&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(31&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Balance at end of year&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;486&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;564&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;652&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</ufpt:SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock>
  <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470479">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Accrued Expenses&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Accrued expenses consist of the following (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Compensation&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,961&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,542&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Benefits / self-insurance reserve&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,033&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,153&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Paid time off&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,315&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,131&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;Other&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,174&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,632&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,483&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,458&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
  <us-gaap:AccountsPayableCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541040" unitRef="iso4217-usd">4577000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccountsPayableCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541041" unitRef="iso4217-usd">6836000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccountsReceivableGrossCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541615" unitRef="iso4217-usd">29134000</us-gaap:AccountsReceivableGrossCurrent>
  <us-gaap:AccountsReceivableGrossCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541616" unitRef="iso4217-usd">28885000</us-gaap:AccountsReceivableGrossCurrent>
  <us-gaap:AccountsReceivableNetCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541010" unitRef="iso4217-usd">28648000</us-gaap:AccountsReceivableNetCurrent>
  <us-gaap:AccountsReceivableNetCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541011" unitRef="iso4217-usd">28321000</us-gaap:AccountsReceivableNetCurrent>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541738" unitRef="iso4217-usd">8483000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541739" unitRef="iso4217-usd">8458000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccruedSalariesCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541730" unitRef="iso4217-usd">3961000</us-gaap:AccruedSalariesCurrent>
  <us-gaap:AccruedSalariesCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541731" unitRef="iso4217-usd">3542000</us-gaap:AccruedSalariesCurrent>
  <us-gaap:AccruedVacationCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541734" unitRef="iso4217-usd">1315000</us-gaap:AccruedVacationCurrent>
  <us-gaap:AccruedVacationCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541735" unitRef="iso4217-usd">1131000</us-gaap:AccruedVacationCurrent>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2019-12-31" decimals="-3" id="c57541022" unitRef="iso4217-usd">59350000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2018-12-31" decimals="-3" id="c57541023" unitRef="iso4217-usd">54112000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AdditionalPaidInCapital contextRef="i_2019-12-31" decimals="-3" id="c57541088" unitRef="iso4217-usd">30952000</us-gaap:AdditionalPaidInCapital>
  <us-gaap:AdditionalPaidInCapital contextRef="i_2018-12-31" decimals="-3" id="c57541089" unitRef="iso4217-usd">29168000</us-gaap:AdditionalPaidInCapital>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541178" unitRef="iso4217-usd">1000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541179" unitRef="iso4217-usd">295000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541180" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541182" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541183" unitRef="iso4217-usd">296000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541213" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541214" unitRef="iso4217-usd">144000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541215" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541217" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541218" unitRef="iso4217-usd">144000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541262" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541263" unitRef="iso4217-usd">512000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541264" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541266" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541267" unitRef="iso4217-usd">512000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541220" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541221" unitRef="iso4217-usd">167000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541222" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541224" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541225" unitRef="iso4217-usd">167000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541519" unitRef="iso4217-usd">1591000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541520" unitRef="iso4217-usd">1212000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2017-01-01_2017-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541521" unitRef="iso4217-usd">1068000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541949" unitRef="iso4217-usd">400000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541950" unitRef="iso4217-usd">505000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541951" unitRef="iso4217-usd">505000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541952" unitRef="iso4217-usd">151000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541953" unitRef="iso4217-usd">149000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541954" unitRef="iso4217-usd">138000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541955" unitRef="iso4217-usd">1040000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541956" unitRef="iso4217-usd">558000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541957" unitRef="iso4217-usd">425000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541617" unitRef="iso4217-usd">486000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541618" unitRef="iso4217-usd">564000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2019-01-01_2019-12-31" decimals="-5" id="c57541633" unitRef="iso4217-usd">1300000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2018-01-01_2018-12-31" decimals="-5" id="c57541634" unitRef="iso4217-usd">1200000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2017-01-01_2017-12-31" decimals="-5" id="c57541635" unitRef="iso4217-usd">300000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2019-01-01_2019-12-31" decimals="INF" id="c57541881" unitRef="xbrli-shares">16536</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2018-01-01_2018-12-31" decimals="INF" id="c57541882" unitRef="xbrli-shares">10344</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount contextRef="d_2017-01-01_2017-12-31" decimals="INF" id="c57541883" unitRef="xbrli-shares">27336</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
  <us-gaap:Assets contextRef="i_2019-12-31" decimals="-3" id="c57541036" unitRef="iso4217-usd">188758000</us-gaap:Assets>
  <us-gaap:Assets contextRef="i_2018-12-31" decimals="-3" id="c57541037" unitRef="iso4217-usd">189598000</us-gaap:Assets>
  <us-gaap:AssetsCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541018" unitRef="iso4217-usd">53250000</us-gaap:AssetsCurrent>
  <us-gaap:AssetsCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541019" unitRef="iso4217-usd">55626000</us-gaap:AssetsCurrent>
  <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c57542178" unitRef="xbrli-pure">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c57542216" unitRef="iso4217-usd-per-xbrli-shares">1.92</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic contextRef="d_2017-01-01_2017-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c57542217" unitRef="iso4217-usd-per-xbrli-shares">1.81</us-gaap:BusinessAcquisitionProFormaEarningsPerShareBasic>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c57542218" unitRef="iso4217-usd-per-xbrli-shares">1.90</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
  <us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted contextRef="d_2017-01-01_2017-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="INF" id="c57542219" unitRef="iso4217-usd-per-xbrli-shares">1.79</us-gaap:BusinessAcquisitionProFormaEarningsPerShareDiluted>
  <us-gaap:BusinessAcquisitionProFormaInformationTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-31">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Year Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;193,510&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;180,419&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Operating Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,464&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;18,990&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14,110&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,126&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;Earnings per share:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Basic&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.92&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.81&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Diluted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.90&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.79&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
  <us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount contextRef="i_2019-12-31" decimals="-3" id="c57541435" unitRef="iso4217-usd">47900000</us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount>
  <us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542211" unitRef="iso4217-usd">19464000</us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax>
  <us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax contextRef="d_2017-01-01_2017-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542212" unitRef="iso4217-usd">18990000</us-gaap:BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax>
  <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542213" unitRef="iso4217-usd">14110000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
  <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss contextRef="d_2017-01-01_2017-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542214" unitRef="iso4217-usd">13126000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
  <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542209" unitRef="iso4217-usd">193510000</us-gaap:BusinessAcquisitionsProFormaRevenue>
  <us-gaap:BusinessAcquisitionsProFormaRevenue contextRef="d_2017-01-01_2017-12-31_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542210" unitRef="iso4217-usd">180419000</us-gaap:BusinessAcquisitionsProFormaRevenue>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember" decimals="-4" id="c57542186" unitRef="iso4217-usd">1100000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2019-01-01_2019-12-31" id="c57541112" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541113" unitRef="iso4217-usd">1089000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
  <us-gaap:BusinessCombinationAcquisitionRelatedCosts contextRef="d_2017-01-01_2017-12-31" id="c57541114" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542194" unitRef="iso4217-usd">76978000</us-gaap:BusinessCombinationConsiderationTransferred1>
  <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470506">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Acquisition&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0; text-indent: 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 1, 2018 &lt;/div&gt;the Company purchased &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100%&lt;/div&gt; of the outstanding shares of common stock of Dielectrics Inc., pursuant to a stock purchase agreement and related agreements, for an aggregate purchase price of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$80&lt;/div&gt;&amp;nbsp;million in cash. The purchase price was subject to adjustment based upon Dielectrics&amp;#x2019; working capital at closing. An additional &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$250&lt;/div&gt; thousand of consideration was paid by the Company as a result of the final working capital adjustment. A portion of the purchase price is being held in escrow to indemnify the Company against certain claims, losses and liabilities. The Purchase Agreement contains customary representations, warranties and covenants customary for transactions of this type.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Founded in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1954&lt;/div&gt; and based in Chicopee, Massachusetts, Dielectrics is a leader in the design, development, and manufacture of medical devices using thermoplastic materials. They primarily use radio frequency and impulse welding to design and manufacture solutions for the medical industry. The Company has leased the Chicopee location from a realty trust owned by the selling shareholder and affiliates. The lease is for &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;five&lt;/div&gt; years with &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;two &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;five&lt;/div&gt;&lt;/div&gt;-year renewal options.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 59; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The following table summarizes the allocation of consideration paid to the acquisition date fair value of the assets acquired and liabilities assumed based on management&amp;#x2019;s estimates of fair value (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Consideration Paid:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 35%; font-size: 10pt; text-align: left"&gt;Cash paid at closing&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;80,000&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White; width: 50%"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Working capital adjustment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;250&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Cash from Dielectrics&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,272&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Total consideration&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Purchase Price Allocation:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Accounts receivable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,384&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Inventory&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,418&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Other current assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;122&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Property, plant and equipment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,600&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Customer list&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Non-compete&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;Trade name and brand&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;44,516&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Total identifiable assets&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;81,424&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Accounts payable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,325&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Accrued expenses&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(946&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Deferred revenue&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,175&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net assets acquired&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;Acquisition costs associated with the transaction were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.1&lt;/div&gt; million and were charged to expense in the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018. &lt;/div&gt;These costs were primarily for investment banking and legal fees and are reflected on the face of the income statement.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;The following table contains an unaudited pro forma condensed consolidated statement of operations for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; as if the Dielectrics acquisition had occurred at the beginning of each of the respective periods (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 0.5in"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 0.5in; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Year Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;(Unaudited)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;193,510&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;180,419&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Operating Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,464&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;18,990&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net Income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14,110&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,126&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;Earnings per share:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Basic&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.92&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.81&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Diluted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.90&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.79&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 0.5in; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 0.5in"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;The above unaudited pro forma information is presented for illustrative purposes only and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be indicative of the results of operations that would have occurred had the Dielectrics acquisition occurred as presented. In addition, future results &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;vary significantly from the results reflected in such pro&amp;nbsp;forma information.&lt;/div&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542198" unitRef="iso4217-usd">122000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542196" unitRef="iso4217-usd">4384000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542205" unitRef="iso4217-usd">1325000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542207" unitRef="iso4217-usd">2175000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c57542200" unitRef="iso4217-usd">22555000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c57542201" unitRef="iso4217-usd">462000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c57542202" unitRef="iso4217-usd">367000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542197" unitRef="iso4217-usd">4418000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542199" unitRef="iso4217-usd">4600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
  <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542208" unitRef="iso4217-usd">76978000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541605" unitRef="iso4217-usd">213000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541606" unitRef="iso4217-usd">218000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541607" unitRef="iso4217-usd">85000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <us-gaap:CashAcquiredFromAcquisition contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542193" unitRef="iso4217-usd">3272000</us-gaap:CashAcquiredFromAcquisition>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2018-12-31" decimals="-3" id="c57541368" unitRef="iso4217-usd">3238000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2017-12-31" decimals="-3" id="c57541369" unitRef="iso4217-usd">37978000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2016-12-31" decimals="-3" id="c57541370" unitRef="iso4217-usd">31359000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2019-12-31" decimals="-3" id="c57541371" unitRef="iso4217-usd">3743000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541365" unitRef="iso4217-usd">505000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541366" unitRef="iso4217-usd">-34740000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541367" unitRef="iso4217-usd">6619000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543387">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(e)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Cash and Cash Equivalents&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company considers all highly liquid investments with original maturities of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt; months or less to be cash equivalents. At &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; the Company did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt;&lt;/div&gt; have any cash equivalents.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company maintains its cash in bank deposit accounts, money market funds, and certificates of deposit that at times exceed federally insured limits. The Company periodically reviews the financial stability of institutions holding its accounts and does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; believe it is exposed to any significant custodial credit risk on cash. The amounts contained within the Company&amp;#x2019;s main operating accounts at Bank of America and TD Bank at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;exceed the federal depository insurance limit by approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$4.7&lt;/div&gt; million.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
  <us-gaap:CashEquivalentsAtCarryingValue contextRef="i_2019-12-31" decimals="-3" id="c57541393" unitRef="iso4217-usd">0</us-gaap:CashEquivalentsAtCarryingValue>
  <us-gaap:CashEquivalentsAtCarryingValue contextRef="i_2018-12-31" decimals="-3" id="c57541391" unitRef="iso4217-usd">0</us-gaap:CashEquivalentsAtCarryingValue>
  <us-gaap:CashFlowSupplementalDisclosuresTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470465">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Supplemental Cash Flow Information&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2018&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2017&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;(in thousands)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Cash paid for:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 55%; font-size: 10pt"&gt;Interest&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;664&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,303&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Income taxes, net of refunds&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,255&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,463&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,878&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Non-cash investing and financing activities:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Capital additions accrued but not yet paid&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;213&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;218&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;85&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;During the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; the Company permitted the exercise of stock options with exercise proceeds paid with the Company&amp;#x2019;s stock (&amp;#x201c;cashless&amp;#x201d; exercises) totaling approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$172&lt;/div&gt; thousand, respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:CashFlowSupplementalDisclosuresTextBlock>
  <us-gaap:CashUninsuredAmount contextRef="i_2019-12-31" decimals="-3" id="c57541399" unitRef="iso4217-usd">4700000</us-gaap:CashUninsuredAmount>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2019-12-31" id="c57541065" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2018-12-31" id="c57541066" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470497">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Commitments and Contingencies&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;(a)&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Leases&lt;/div&gt;&lt;/div&gt; &amp;#x2013; The Company has operating leases for certain facilities that expire through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2023.&lt;/div&gt; Certain of the leases contain escalation clauses that require payments of additional rent as well as increases in related operating costs. See Note &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13&lt;/div&gt; for details on lease commitments.&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;(b)&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Legal&lt;/div&gt;&lt;/div&gt; &amp;#x2013; From time to time, the Company &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be a party to various suits, claims and complaints arising in the ordinary course of business. In the opinion of management of the Company, these suits, claims and complaints should &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; result in final judgments or settlements that, in the aggregate, would have a material adverse effect on the Company&amp;#x2019;s financial condition or results of operations.&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="i_2019-12-31" decimals="INF" id="c57541080" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="i_2018-12-31" decimals="INF" id="c57541081" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <us-gaap:CommonStockSharesAuthorized contextRef="i_2019-12-31" decimals="INF" id="c57541082" unitRef="xbrli-shares">20000000</us-gaap:CommonStockSharesAuthorized>
  <us-gaap:CommonStockSharesAuthorized contextRef="i_2018-12-31" decimals="INF" id="c57541083" unitRef="xbrli-shares">20000000</us-gaap:CommonStockSharesAuthorized>
  <us-gaap:CommonStockSharesIssued contextRef="i_2019-12-31" decimals="INF" id="c57541084" unitRef="xbrli-shares">7475768</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesIssued contextRef="i_2018-12-31" decimals="INF" id="c57541085" unitRef="xbrli-shares">7415002</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2019-12-31" decimals="INF" id="c57541086" unitRef="xbrli-shares">7446209</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2018-12-31" decimals="INF" id="c57541087" unitRef="xbrli-shares">7385443</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockValue contextRef="i_2019-12-31" decimals="-3" id="c57541078" unitRef="iso4217-usd">74000</us-gaap:CommonStockValue>
  <us-gaap:CommonStockValue contextRef="i_2018-12-31" decimals="-3" id="c57541079" unitRef="iso4217-usd">74000</us-gaap:CommonStockValue>
  <us-gaap:CompensationAndEmployeeBenefitPlansTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470498">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Employee Benefit Plans&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company maintains a profit-sharing plan for eligible employees. Contributions to the Plan are made in the form of matching contributions to employee &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;401&lt;/div&gt;(k) deferrals, as well as discretionary profit-sharing amounts determined by the Board of Directors to be funded by &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; March 15 &lt;/div&gt;following each fiscal year. Contributions to the Plan were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.0&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.1&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.8&lt;/div&gt; million for the years &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company has a partially self-insured health insurance program that covers all eligible participating employees. The maximum liability is limited by a stop loss of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$225&lt;/div&gt; thousand per insured person, along with an aggregate stop loss determined by the number of participants.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company has an Executive, Non-qualified &amp;#x201c;Excess&amp;#x201d; Plan (&amp;#x201c;the Plan&amp;#x201d;), which is a deferred compensation plan available to certain executives. The Plan permits participants to defer receipt of part of their current compensation to a later date as part of their personal retirement or financial planning. Participants have an unsecured contractual commitment from the Company to pay amounts due under the Plan.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The compensation withheld from Plan participants, together with gains or losses determined by the participants&amp;#x2019; deferral elections is reflected as a deferred compensation obligation to participants and is classified within the liabilities section in the accompanying balance sheets. At &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; the balance of the deferred compensation liability totaled approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$2.8&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$2.0&lt;/div&gt; million, respectively. The related assets, which are held in the form of a Company-owned, variable life insurance policy that names the Company as the beneficiary, are classified within the other assets section of the accompanying balance sheets and are accounted for based on the underlying cash surrender values of the policies and totaled approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$2.8&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$2.0&lt;/div&gt; million as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:CompensationAndEmployeeBenefitPlansTextBlock>
  <us-gaap:ConsolidationPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543383">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(a)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Principles of Consolidation&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The consolidated financial statements include the accounts and results of operations of UFP Technologies, Inc., its wholly-owned subsidiaries, Moulded Fibre Technology, Inc., Simco Industries, Inc. Dielectrics, Inc. and UFP Realty LLC, and its wholly-owned subsidiaries, UFP MA LLC, UFP CO LLC, UFP FL LLC, UFP TX LLC, UFP MI LLC, and UFP IA LLC. All significant intercompany balances and transactions have been eliminated in consolidation. The Company has evaluated all subsequent events through the date of this filing.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ConsolidationPolicyTextBlock>
  <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-6">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Liabilities&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Years Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Deferred revenue - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,507&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;871&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Acquired in Dielectrics business combination&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,175&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increases due to consideration received from customers&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,216&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,188&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Revenue recognized&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,149&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,727&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Deferred revenue - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,574&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,507&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Assets&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Years Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Unbilled Receivables - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increases due to revenue recognized - not invoiced to customers&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;831&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;301&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Decreases due to customer invoicing&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(824&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(236&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Unbilled Receivables - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2018-12-31" decimals="-3" id="c57541583" unitRef="iso4217-usd">65000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2017-12-31" id="c57541584" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2019-12-31" decimals="-3" id="c57541589" unitRef="iso4217-usd">72000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541587" unitRef="iso4217-usd">824000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541588" unitRef="iso4217-usd">236000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2018-12-31" decimals="-3" id="c57541573" unitRef="iso4217-usd">2507000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2017-12-31" decimals="-3" id="c57541574" unitRef="iso4217-usd">871000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2019-12-31" decimals="-3" id="c57541581" unitRef="iso4217-usd">2574000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541044" unitRef="iso4217-usd">2574000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541045" unitRef="iso4217-usd">2507000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination contextRef="d_2019-01-01_2019-12-31" id="c57541575" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541576" unitRef="iso4217-usd">2175000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2019-01-01_2019-12-31_FairValueByAssetClassAxis-DeferredRevenueMember" decimals="-5" id="c57541557" unitRef="iso4217-usd">1700000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2018-01-01_2018-12-31_FairValueByAssetClassAxis-DeferredRevenueMember" decimals="-5" id="c57541558" unitRef="iso4217-usd">600000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541579" unitRef="iso4217-usd">3149000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541580" unitRef="iso4217-usd">4727000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541103" unitRef="iso4217-usd">144422000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541104" unitRef="iso4217-usd">142147000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541105" unitRef="iso4217-usd">112356000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541775" unitRef="iso4217-usd">2920000</us-gaap:CurrentFederalTaxExpenseBenefit>
  <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541776" unitRef="iso4217-usd">1772000</us-gaap:CurrentFederalTaxExpenseBenefit>
  <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541777" unitRef="iso4217-usd">3117000</us-gaap:CurrentFederalTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541781" unitRef="iso4217-usd">3105000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541782" unitRef="iso4217-usd">2211000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541783" unitRef="iso4217-usd">3668000</us-gaap:CurrentIncomeTaxExpenseBenefit>
  <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541778" unitRef="iso4217-usd">185000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
  <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541779" unitRef="iso4217-usd">439000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
  <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541780" unitRef="iso4217-usd">551000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
  <us-gaap:DebtDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470477">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Indebtedness &lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 0.25in"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 1, 2018, &lt;/div&gt;the Company, as the borrower, entered into an unsecured &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$70&lt;/div&gt; million Amended and Restated Credit Agreement (the &amp;#x201c;Amended and Restated Credit Agreement&amp;#x201d;) with the Company&amp;#x2019;s subsidiaries (the &amp;#x201c;Subsidiary Guarantors&amp;#x201d;) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit Agreement amends and restates the Company&amp;#x2019;s prior credit agreement.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The credit facilities under the Amended and Restated Credit Agreement (the &amp;#x201c;Amended and Restated Credit Facilities&amp;#x201d;) consist of a &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$20&lt;/div&gt; million unsecured term loan and an unsecured revolving credit facility, under which the Company &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;borrow up to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$50&lt;/div&gt; million. The Amended and Restated Credit Agreement matures on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 1, 2023.&amp;nbsp;&lt;/div&gt;The proceeds borrowed pursuant to the Amended and Restated Credit Agreement &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be used for general corporate purposes, as well as permitted acquisitions. The Company&amp;#x2019;s obligations under the Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Amended and Restated Credit Agreement calls for interest of LIBOR plus a margin that ranges from &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.0%&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.5%&lt;/div&gt; or, at the discretion of the Company, the bank&amp;#x2019;s prime rate less a margin that ranges from &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;.25%&lt;/div&gt; to zero. In both cases the applicable margin is dependent upon Company performance.&amp;nbsp;Under the Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant.&amp;nbsp;The Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness and permitted investments.&amp;nbsp;As of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;the applicable interest rate was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.8%&lt;/div&gt; and the Company was in compliance with all covenants under the Amended and Restated Credit Agreement.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 48; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Included in the Amended and Restated Credit Facilities were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.7&lt;/div&gt; million in standby letters of credit as a financial guarantee on worker&amp;#x2019;s compensation insurance policies.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Long-term debt consists of the following (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Revolving credit facility&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Term loan&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,143&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total long-term debt&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25,143&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt"&gt;Current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,857&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Long-term debt, excluding current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,286&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Derivative Financial Instruments&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company used interest-rate-related derivative instruments to manage its exposure related to changes in interest rates on certain of its variable-rate debt instruments. The Company does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; enter into derivative instruments for any purpose other than cash flow hedging. Derivative financial instruments expose the Company to credit risk and market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract. When the fair value of a derivative contract is positive, the counterparty owes the Company, creating credit risk for the Company. When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, in these circumstances the Company is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; exposed to the counterparty&amp;#x2019;s credit risk. The Company minimizes counterparty credit risk in derivative instruments by entering into transactions with carefully selected major financial institutions based upon their credit profile. Market risk is the adverse effect on the value of a derivative instrument that results from a change in interest rates.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company assesses interest rate risk by continually identifying and monitoring changes in interest rate exposures that &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&amp;#x2019;s debt obligations exposed the Company to variability in interest payments due to changes in interest rates. The Company believed that it was prudent to limit the variability of a portion of its interest payments. To meet this objective, in connection with the Amended and Restated Credit Agreement, the Company entered into a &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$20&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt;-year interest rate swap agreement under which the Company receives &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;-month LIBOR plus the applicable margin and pays a &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7%&lt;/div&gt; fixed rate plus the applicable margin. The swap modified the Company&amp;#x2019;s interest rate exposure by converting the term loan from a variable rate to a fixed rate in order to hedge against the possibility of rising interest rates during the term of the loan. The notional amount was &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$14,285,712&lt;/div&gt; at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019. &lt;/div&gt;The fair value of the swap as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;was approximately $(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;325&lt;/div&gt;) thousand and is included in other liabilities. Changes in the fair value of the swap are recorded in other income/expense and resulted in expense of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$388&lt;/div&gt; thousand and income of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$64&lt;/div&gt; thousand during the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; respectively.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;During the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;fourth&lt;/div&gt; quarter of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019,&lt;/div&gt; the Company paid the remaining balance of the term loan in its entirety. As a result, there is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt;&lt;/div&gt; longer underlying debt to hedge against with the swap. The changes in the fair value of the swap will continue to be accounted for as a financial instrument until the sooner of the time that the Company elects to cancel it or until its maturity.&lt;/div&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2018-02-01_2018-02-01_CreditFacilityAxis-UnsecuredRevolvingCreditFacilityMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" decimals="4" id="c57541696" unitRef="xbrli-pure">0.01</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2018-02-01_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" decimals="4" id="c57541697" unitRef="xbrli-pure">0.015</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2018-02-01_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-PrimeRateMember" decimals="4" id="c57541698" unitRef="xbrli-pure">0.0025</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1 contextRef="d_2018-02-01_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MinimumMember_VariableRateAxis-PrimeRateMember" decimals="4" id="c57541717" unitRef="xbrli-pure">0</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentFaceAmount contextRef="i_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="INF" id="c57541693" unitRef="iso4217-usd">70000000</us-gaap:DebtInstrumentFaceAmount>
  <us-gaap:DebtInstrumentFaceAmount contextRef="i_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_LongtermDebtTypeAxis-UnsecuredTermLoanMember" decimals="INF" id="c57541694" unitRef="iso4217-usd">20000000</us-gaap:DebtInstrumentFaceAmount>
  <us-gaap:DebtInstrumentInterestRateEffectivePercentage contextRef="i_2019-12-31_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="4" id="c57541699" unitRef="xbrli-pure">0.028</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
  <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c57542072" unitRef="iso4217-usd">2788000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
  <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c57542073" unitRef="iso4217-usd">2044000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
  <us-gaap:DeferredCompensationPlanAssets contextRef="i_2019-12-31" decimals="-3" id="c57541030" unitRef="iso4217-usd">2775000</us-gaap:DeferredCompensationPlanAssets>
  <us-gaap:DeferredCompensationPlanAssets contextRef="i_2018-12-31" decimals="-3" id="c57541031" unitRef="iso4217-usd">2034000</us-gaap:DeferredCompensationPlanAssets>
  <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541785" unitRef="iso4217-usd">485000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
  <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541786" unitRef="iso4217-usd">1917000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
  <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541787" unitRef="iso4217-usd">-1091000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541296" unitRef="iso4217-usd">792000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541297" unitRef="iso4217-usd">1881000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541298" unitRef="iso4217-usd">-1019000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxLiabilities contextRef="i_2019-12-31" decimals="-3" id="c57541827" unitRef="iso4217-usd">7666000</us-gaap:DeferredIncomeTaxLiabilities>
  <us-gaap:DeferredIncomeTaxLiabilities contextRef="i_2018-12-31" decimals="-3" id="c57541828" unitRef="iso4217-usd">6065000</us-gaap:DeferredIncomeTaxLiabilities>
  <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="i_2019-12-31" decimals="-3" id="c57541054" unitRef="iso4217-usd">4921000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
  <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="i_2018-12-31" decimals="-3" id="c57541055" unitRef="iso4217-usd">4129000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
  <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541788" unitRef="iso4217-usd">306000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
  <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541789" unitRef="iso4217-usd">-36000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
  <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541790" unitRef="iso4217-usd">72000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
  <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="i_2019-12-31" decimals="-3" id="c57541810" unitRef="iso4217-usd">73000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
  <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets contextRef="i_2018-12-31" decimals="-3" id="c57541811" unitRef="iso4217-usd">141000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
  <us-gaap:DeferredTaxAssetsGross contextRef="i_2019-12-31" decimals="-3" id="c57541746" unitRef="iso4217-usd">2881000</us-gaap:DeferredTaxAssetsGross>
  <us-gaap:DeferredTaxAssetsGross contextRef="i_2018-12-31" decimals="-3" id="c57541815" unitRef="iso4217-usd">1936000</us-gaap:DeferredTaxAssetsGross>
  <us-gaap:DeferredTaxAssetsInventory contextRef="i_2019-12-31" decimals="-3" id="c57541800" unitRef="iso4217-usd">396000</us-gaap:DeferredTaxAssetsInventory>
  <us-gaap:DeferredTaxAssetsInventory contextRef="i_2018-12-31" decimals="-3" id="c57541801" unitRef="iso4217-usd">421000</us-gaap:DeferredTaxAssetsInventory>
  <us-gaap:DeferredTaxAssetsNet contextRef="i_2019-12-31" decimals="-3" id="c57541818" unitRef="iso4217-usd">2745000</us-gaap:DeferredTaxAssetsNet>
  <us-gaap:DeferredTaxAssetsNet contextRef="i_2018-12-31" decimals="-3" id="c57541819" unitRef="iso4217-usd">1936000</us-gaap:DeferredTaxAssetsNet>
  <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="i_2019-12-31" decimals="-3" id="c57541812" unitRef="iso4217-usd">274000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
  <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards contextRef="i_2018-12-31" decimals="-3" id="c57541813" unitRef="iso4217-usd">257000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits contextRef="i_2019-12-31" id="c57541804" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits contextRef="i_2018-12-31" decimals="-3" id="c57541805" unitRef="iso4217-usd">2000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="i_2019-12-31" decimals="-3" id="c57541806" unitRef="iso4217-usd">403000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="i_2018-12-31" decimals="-3" id="c57541807" unitRef="iso4217-usd">290000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals contextRef="i_2019-12-31" decimals="-3" id="c57541798" unitRef="iso4217-usd">362000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
  <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals contextRef="i_2018-12-31" decimals="-3" id="c57541799" unitRef="iso4217-usd">367000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
  <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="i_2019-12-31" decimals="-3" id="c57541748" unitRef="iso4217-usd">136000</us-gaap:DeferredTaxAssetsValuationAllowance>
  <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="i_2018-12-31" id="c57541817" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill contextRef="i_2019-12-31" decimals="-3" id="c57541823" unitRef="iso4217-usd">2008000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill>
  <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill contextRef="i_2018-12-31" decimals="-3" id="c57541824" unitRef="iso4217-usd">1397000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill>
  <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="i_2019-12-31" decimals="-3" id="c57541821" unitRef="iso4217-usd">4877000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
  <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="i_2018-12-31" decimals="-3" id="c57541822" unitRef="iso4217-usd">4668000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
  <us-gaap:DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c57542074" unitRef="iso4217-usd">2800000</us-gaap:DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent>
  <us-gaap:DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c57542075" unitRef="iso4217-usd">2000000</us-gaap:DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent>
  <us-gaap:DefinedContributionPlanCostRecognized contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542064" unitRef="iso4217-usd">1000000</us-gaap:DefinedContributionPlanCostRecognized>
  <us-gaap:DefinedContributionPlanCostRecognized contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57542065" unitRef="iso4217-usd">1100000</us-gaap:DefinedContributionPlanCostRecognized>
  <us-gaap:DefinedContributionPlanCostRecognized contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57542066" unitRef="iso4217-usd">800000</us-gaap:DefinedContributionPlanCostRecognized>
  <us-gaap:DepreciationAndAmortization contextRef="d_2019-01-01_2019-12-31" decimals="-5" id="c57541675" unitRef="iso4217-usd">6900000</us-gaap:DepreciationAndAmortization>
  <us-gaap:DepreciationAndAmortization contextRef="d_2018-01-01_2018-12-31" decimals="-5" id="c57541676" unitRef="iso4217-usd">6600000</us-gaap:DepreciationAndAmortization>
  <us-gaap:DepreciationAndAmortization contextRef="d_2017-01-01_2017-12-31" decimals="-5" id="c57541677" unitRef="iso4217-usd">5300000</us-gaap:DepreciationAndAmortization>
  <us-gaap:DepreciationDepletionAndAmortization contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541287" unitRef="iso4217-usd">8172000</us-gaap:DepreciationDepletionAndAmortization>
  <us-gaap:DepreciationDepletionAndAmortization contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541288" unitRef="iso4217-usd">7831000</us-gaap:DepreciationDepletionAndAmortization>
  <us-gaap:DepreciationDepletionAndAmortization contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541289" unitRef="iso4217-usd">5635000</us-gaap:DepreciationDepletionAndAmortization>
  <us-gaap:DerivativeAssets contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember" decimals="-3" id="c57542085" unitRef="iso4217-usd">-325000</us-gaap:DerivativeAssets>
  <us-gaap:DerivativeFairValueOfDerivativeNet contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="INF" id="c57541709" unitRef="iso4217-usd">325000</us-gaap:DerivativeFairValueOfDerivativeNet>
  <us-gaap:DerivativeFixedInterestRate contextRef="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="4" id="c57541707" unitRef="xbrli-pure">0.027</us-gaap:DerivativeFixedInterestRate>
  <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="d_2019-01-01_2019-12-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="INF" id="c57541710" unitRef="iso4217-usd">388000</us-gaap:DerivativeGainLossOnDerivativeNet>
  <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="d_2018-01-01_2018-12-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="INF" id="c57541711" unitRef="iso4217-usd">64000</us-gaap:DerivativeGainLossOnDerivativeNet>
  <us-gaap:DerivativeNotionalAmount contextRef="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="INF" id="c57541704" unitRef="iso4217-usd">20000000</us-gaap:DerivativeNotionalAmount>
  <us-gaap:DerivativeNotionalAmount contextRef="i_2019-12-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="INF" id="c57541708" unitRef="iso4217-usd">14285712</us-gaap:DerivativeNotionalAmount>
  <us-gaap:DerivativeTermOfContract contextRef="d_2018-02-01_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" id="c57541705">P5Y</us-gaap:DerivativeTermOfContract>
  <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-5">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-style: italic; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net sales of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 55%; font-size: 10pt; text-align: left"&gt;Products&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;193,016&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;183,186&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;146,275&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Tooling and Machinery&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,730&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,302&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,181&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Engineering services&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,635&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,967&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;387&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Total net sales&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;198,381&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;190,455&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;147,843&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
  <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470488">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Stock Option and Equity Incentive Plans&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Share-based compensation is measured at the grant date based on the fair value of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company issues share-based awards through several plans that are described below. The compensation cost charged against income for those plans is included in selling, general &amp;amp; administrative expenses as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; color: #8497B0; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Share-based compensation related to:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Common stock grants&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;400&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;505&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;505&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Stock option grants&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;151&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;149&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;138&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Restricted Stock Unit awards&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,040&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;558&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;425&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total share-based compensation&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,591&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,212&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,068&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Incentive Plan&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 2003, &lt;/div&gt;the Company formally adopted the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2003&lt;/div&gt; Incentive Plan (the &amp;#x201c;Plan&amp;#x201d;). As amended and restated to date, the Plan is intended to benefit the Company by offering equity-based and other incentives to certain of the Company&amp;#x2019;s executives and employees who are in a position to contribute to the long-term success and growth of the Company, thereby encouraging the continuance of their involvement with the Company and/or its subsidiaries.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt"&gt;Two types of equity awards &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be granted to participants under the Plan: restricted shares or other stock awards. Restricted shares are shares of common stock awarded subject to restrictions and to possible forfeiture upon the occurrence of specified events. Other stock awards are awards that are denominated or payable in, valued in whole or in part by reference to, or otherwise based on or related to, shares of common stock. Such awards &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;include Restricted Stock Unit Awards (&amp;#x201c;RSUs&amp;#x201d;), unrestricted stock, incentive and non-qualified stock options, performance shares, or stock appreciation rights. The Company determines the form, terms, and conditions, if any, of any awards made under the Plan.&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt"&gt;Through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,252,613&lt;/div&gt; shares of common stock have been issued under the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2003&lt;/div&gt; Incentive Plan, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;none&lt;/div&gt; of which have been restricted. An additional &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;108,424&lt;/div&gt; shares are being reserved for outstanding grants of RSUs and other share-based compensation that are subject to various performance and time-vesting contingencies. The Company has also granted awards in the form of stock options under this Plan. Through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;185,000&lt;/div&gt; options have been granted and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,000&lt;/div&gt; options are outstanding. At &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;803,244&lt;/div&gt; shares or options are available for future issuance in the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2003&lt;/div&gt; Incentive Plan.&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 53; Value: 1 --&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Director Plan&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Effective &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; July 15, 1998, &lt;/div&gt;the Company adopted the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1998&lt;/div&gt; Director Plan, which was amended and renamed, on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 3, 2009, &lt;/div&gt;the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2009&lt;/div&gt; Non-Employee Director Stock Incentive Plan (the &amp;#x201c;Director Plan&amp;#x201d;). The Director Plan was amended on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; March 7, 2013, &lt;/div&gt;to (i) prohibit the repricing of stock options or other equity awards without the consent of the Company&amp;#x2019;s shareholders, and (ii) prohibit the Company from buying out underwater stock options. The Director Plan, as amended, provides for the issuance of stock options and other equity-based securities of up to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;975,000&lt;/div&gt; shares to non-employee members of the Company&amp;#x2019;s board of directors. Through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;365,026&lt;/div&gt; options have been granted and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;95,614&lt;/div&gt; options are outstanding. For the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,442&lt;/div&gt; RSUs are being reserved for outstanding grants of RSUs, and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;79,648&lt;/div&gt; shares remained available to be issued under the Director Plan.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The following is a summary of stock option activity under all plans:&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Shares Under&lt;br /&gt; Options&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted&lt;br /&gt; Average&lt;br /&gt; Exercise&lt;br /&gt; Price&lt;/div&gt;&lt;br /&gt; &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400"&gt;(per share)&lt;/div&gt;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted&lt;br /&gt; Average&lt;br /&gt; Remaining&lt;br /&gt; Contractual&lt;br /&gt; Life&lt;/div&gt;&lt;br /&gt; &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400"&gt;(in years)&lt;/div&gt;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate&lt;br /&gt; Intrinsic&lt;br /&gt; Value&lt;/div&gt;&lt;br /&gt; &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400"&gt;(in thousands)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Outstanding December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;134,043&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20.46&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right; width: 10%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Granted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,536&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;38.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Exercised&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(44,965&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15.68&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Outstanding December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;105,614&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25.34&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,563&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Exercisable at December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;85,328&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22.62&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.10&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,303&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Vested and expected to vest at December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;105,614&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25.34&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,563&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;During the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; the total intrinsic value of all options exercised (i.e.,&amp;nbsp;the difference between the market price and the price paid by the employees to exercise the options) was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.0,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.2&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.6&lt;/div&gt; million, respectively, and the total amount of consideration received from the exercise of these options was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.7&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.3&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.8&lt;/div&gt; million, respectively. At its discretion, the Company allows option holders to surrender previously-owned common stock in lieu of paying the exercise price and withholding taxes. During the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt;&lt;/div&gt; shares were surrendered for this purpose. During the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6,511&lt;/div&gt; shares were surrendered to pay the exercise price at an average market price of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$26.45.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 19, 2019, &lt;/div&gt;the Company&amp;#x2019;s Compensation Committee approved the award of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$400&lt;/div&gt; thousand payable in shares of the Company&amp;#x2019;s common stock to the Company&amp;#x2019;s Chairman, Chief Executive Officer, and President under the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2003&lt;/div&gt; Equity Incentive Plan. The shares were issued on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 12, 2019.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 5, 2019 &lt;/div&gt;the Company issued &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,536&lt;/div&gt; shares of unrestricted common stock to the non-employee members of the Company&amp;#x2019;s Board of Directors as part of their annual retainer for serving on the Board.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 54; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The Company grants RSUs to its executive officers and employees. The stock unit awards are subject to various time-based vesting requirements, and certain portions of these awards are subject to performance criteria of the Company. Compensation expense on these awards is recorded based on the fair value of the award at the date of grant, which is equal to the Company&amp;#x2019;s closing stock price, and is charged, to expense ratably during the service period. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No&lt;/div&gt; compensation expense is taken on awards that do &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; become vested, and the amount of compensation expense recorded is adjusted based on management&amp;#x2019;s determination of the probability that these awards will become vested. The following table summarizes information about stock unit award activity during the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019:&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Restricted&lt;br /&gt; Stock Units&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Weighted&lt;br /&gt; Average Award&lt;br /&gt; Date Fair Value&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Outstanding at December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72,996&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.60&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Awarded&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;64,701&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33.55&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Shares vested&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(20,529&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.74&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Forfeitures&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,302&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33.31&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Outstanding at December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;113,866&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28.36&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;At the Company&amp;#x2019;s discretion, RSU holders are given the option to net-share settle to cover the required minimum withholding tax, and the remaining amount is converted into the equivalent number of common shares. During the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,341&lt;/div&gt; shares were redeemed for this purpose at an average market price of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$33.69.&lt;/div&gt; During the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,238&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,377&lt;/div&gt; shares were redeemed for this purpose at an average market price of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$27.60&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$24.50,&lt;/div&gt; respectively.&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;The following summarizes the future share-based compensation expense the Company will record as the equity securities granted through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;vest (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; text-indent: 1in"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Options&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Restricted&lt;br /&gt; Stock Units&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;999&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,115&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;746&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;746&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;409&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;409&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;48&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;48&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,202&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,318&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-01-01_2019-03-31" decimals="INF" id="c57542149" unitRef="iso4217-usd-per-xbrli-shares">0.50</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-04-01_2019-06-30" decimals="INF" id="c57542150" unitRef="iso4217-usd-per-xbrli-shares">0.62</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-07-01_2019-09-30" decimals="INF" id="c57542151" unitRef="iso4217-usd-per-xbrli-shares">0.76</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-10-01_2019-12-31" decimals="INF" id="c57542152" unitRef="iso4217-usd-per-xbrli-shares">0.78</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-01-01_2018-03-31" decimals="INF" id="c57542169" unitRef="iso4217-usd-per-xbrli-shares">0.24</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-04-01_2018-06-30" decimals="INF" id="c57542170" unitRef="iso4217-usd-per-xbrli-shares">0.54</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-07-01_2018-09-30" decimals="INF" id="c57542171" unitRef="iso4217-usd-per-xbrli-shares">0.56</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-10-01_2018-12-31" decimals="INF" id="c57542172" unitRef="iso4217-usd-per-xbrli-shares">0.60</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-01-01_2019-12-31" decimals="INF" id="c57541143" unitRef="iso4217-usd-per-xbrli-shares">2.66</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2018-01-01_2018-12-31" decimals="INF" id="c57541144" unitRef="iso4217-usd-per-xbrli-shares">1.95</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2017-01-01_2017-12-31" decimals="INF" id="c57541145" unitRef="iso4217-usd-per-xbrli-shares">1.27</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-01-01_2019-03-31" decimals="INF" id="c57542153" unitRef="iso4217-usd-per-xbrli-shares">0.50</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-04-01_2019-06-30" decimals="INF" id="c57542154" unitRef="iso4217-usd-per-xbrli-shares">0.62</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-07-01_2019-09-30" decimals="INF" id="c57542155" unitRef="iso4217-usd-per-xbrli-shares">0.75</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-10-01_2019-12-31" decimals="INF" id="c57542156" unitRef="iso4217-usd-per-xbrli-shares">0.76</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-01-01_2018-03-31" decimals="INF" id="c57542173" unitRef="iso4217-usd-per-xbrli-shares">0.24</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-04-01_2018-06-30" decimals="INF" id="c57542174" unitRef="iso4217-usd-per-xbrli-shares">0.54</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-07-01_2018-09-30" decimals="INF" id="c57542175" unitRef="iso4217-usd-per-xbrli-shares">0.56</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-10-01_2018-12-31" decimals="INF" id="c57542176" unitRef="iso4217-usd-per-xbrli-shares">0.59</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-01-01_2019-12-31" decimals="INF" id="c57541146" unitRef="iso4217-usd-per-xbrli-shares">2.63</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2018-01-01_2018-12-31" decimals="INF" id="c57541147" unitRef="iso4217-usd-per-xbrli-shares">1.93</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2017-01-01_2017-12-31" decimals="INF" id="c57541148" unitRef="iso4217-usd-per-xbrli-shares">1.26</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470486">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Net Income Per Share&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Basic income per share is based upon the weighted average common shares outstanding during each year. Diluted income per share is based upon the weighted average of common shares and dilutive common stock equivalent shares outstanding during each year. The weighted average number of shares used to compute both basic and diluted income per share consisted of the following (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Basic weighted average common shares outstanding during the year&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,424&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,347&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,248&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Weighted average common equivalent shares due to stock options and restricted stock units&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;92&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;83&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;89&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Diluted weighted average common shares outstanding during the year&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,516&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,430&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,337&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise price of the related options during the period. These outstanding stock awards are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; included in the computation of diluted earnings per share because the effect would have been antidilutive.&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;For the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; the number of stock awards excluded from the computation was &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,536,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,344&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27,336,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541868" unitRef="xbrli-pure">0.165</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541869" unitRef="xbrli-pure">0.222</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541870" unitRef="xbrli-pure">0.223</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="d_2019-01-01_2019-12-31" decimals="2" id="c57541755" unitRef="xbrli-pure">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541832" unitRef="xbrli-pure">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541833" unitRef="xbrli-pure">0.34</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
  <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541865" unitRef="xbrli-pure">0.001</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
  <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="d_2018-01-01_2018-12-31" id="c57541866" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="d_2017-01-01_2017-12-31" id="c57541867" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate contextRef="d_2019-01-01_2019-12-31" id="c57541859" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate contextRef="d_2018-01-01_2018-12-31" id="c57541860" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541861" unitRef="xbrli-pure">-0.111</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate>
  <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities contextRef="d_2019-01-01_2019-12-31" id="c57541844" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities contextRef="d_2018-01-01_2018-12-31" id="c57541845" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541846" unitRef="xbrli-pure">0.026</us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities>
  <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541838" unitRef="xbrli-pure">0.002</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment>
  <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541839" unitRef="xbrli-pure">0.002</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment>
  <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541840" unitRef="xbrli-pure">0.003</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment>
  <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="d_2019-01-01_2019-12-31" id="c57541847" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541848" unitRef="xbrli-pure">0.001</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
  <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541849" unitRef="xbrli-pure">0.001</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
  <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541862" unitRef="xbrli-pure">0.004</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
  <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541863" unitRef="xbrli-pure">0.005</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
  <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541864" unitRef="xbrli-pure">0.001</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
  <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541856" unitRef="xbrli-pure">0.006</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
  <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541857" unitRef="xbrli-pure">0.008</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
  <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="d_2017-01-01_2017-12-31" id="c57541858" unitRef="xbrli-pure" xs:nil="true"/>
  <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541835" unitRef="xbrli-pure">0.018</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
  <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541836" unitRef="xbrli-pure">0.028</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
  <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541837" unitRef="xbrli-pure">0.035</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
  <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="d_2019-01-01_2019-12-31" decimals="3" id="c57541841" unitRef="xbrli-pure">0.062</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
  <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="d_2018-01-01_2018-12-31" decimals="3" id="c57541842" unitRef="xbrli-pure">0.019</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
  <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="d_2017-01-01_2017-12-31" decimals="3" id="c57541843" unitRef="xbrli-pure">0.006</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c57542007" unitRef="iso4217-usd">116000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="-3" id="c57542008" unitRef="iso4217-usd">2202000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2019-12-31" decimals="-3" id="c57542009" unitRef="iso4217-usd">2318000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c57541456" unitRef="iso4217-usd">653000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
  <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c57541457" unitRef="iso4217-usd">544000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
  <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="-3" id="c57541458" unitRef="iso4217-usd">525000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
  <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-27">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0 0pt 0.5in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Level 2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;December 31,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Assets:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 35%; font-size: 10pt; text-align: left; text-indent: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Derivative financial instruments&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(325&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White; width: 50%"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
  <us-gaap:FairValueDisclosuresTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470499">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Fair Value of Financial Instruments&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Financial instruments recorded at fair value in the consolidated balance sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to measure their fair value. Hierarchical levels defined by ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;820,&lt;/div&gt; &lt;div style="display: inline; font-style: italic;"&gt;Fair Value Measurements and Disclosures&lt;/div&gt;, and directly related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Valued based on unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Valued based on either directly or indirectly observable prices for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&amp;#x2019;s anticipated life.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Valued based on management&amp;#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation technique and the risk inherent in the inputs to the model.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The following table presents the fair value and hierarchy levels, for financial assets that are measured at fair value on a recurring basis (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0 0pt 0.5in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Level 2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;December 31,&lt;br /&gt; 2019&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Assets:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="width: 35%; font-size: 10pt; text-align: left; text-indent: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Derivative financial instruments&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(325&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White; width: 50%"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Derivative financial instruments consist of an interest rate swap for which fair value is determined through the use of a pricing model that utilizes verifiable inputs such as market interest rates that are observable at commonly quoted intervals for the full term of the swap agreement.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company has financial instruments, such as accounts receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&amp;#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the estimated borrowing rate currently available to the Company.&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
  <us-gaap:FairValueMeasurementPolicyPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543385">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(c)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Fair Value Measurement&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;The Company defines fair value as the price that would be received from selling an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. When determining the fair value for assets and liabilities, which are required to be recorded at fair value, the Company considers the principal or most advantageous market in which the Company would transact and the market-based risk measurement or assumptions that market participants would use in pricing the asset or liability, such as inherent risk, transfer restrictions, and credit risk.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;The Company has &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; elected fair value accounting for any financial instruments for which fair value accounting is optional.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueMeasurementPolicyPolicyTextBlock>
  <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="d_2019-01-01_2019-12-31" id="c57543386">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(d)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Fair Value of Financial Instruments&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Cash and cash equivalents, accounts receivable, accounts payable, accrued expenses and other liabilities are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&amp;#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the Company&amp;#x2019;s current incremental borrowing rate.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
  <us-gaap:FinanceLeaseLiability contextRef="i_2019-01-01" decimals="-3" id="c57542018" unitRef="iso4217-usd">0</us-gaap:FinanceLeaseLiability>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-01-01_2019-12-31_RangeAxis-MinimumMember" id="c57541436">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="d_2019-01-01_2019-12-31_RangeAxis-MaximumMember" id="c57541437">P20Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c57541643" unitRef="iso4217-usd">70000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c57541644" unitRef="iso4217-usd">177000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c57541645" unitRef="iso4217-usd">2162000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2019-12-31" decimals="-3" id="c57541646" unitRef="iso4217-usd">2409000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c57541655" unitRef="iso4217-usd">33000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c57541656" unitRef="iso4217-usd">85000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c57541657" unitRef="iso4217-usd">1034000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2018-12-31" decimals="-3" id="c57541658" unitRef="iso4217-usd">1152000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive contextRef="i_2019-12-31" decimals="-3" id="c57541668" unitRef="iso4217-usd">14868000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths contextRef="i_2019-12-31" decimals="-3" id="c57541663" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive contextRef="i_2019-12-31" decimals="-3" id="c57541667" unitRef="iso4217-usd">1164000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour contextRef="i_2019-12-31" decimals="-3" id="c57541666" unitRef="iso4217-usd">1172000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree contextRef="i_2019-12-31" decimals="-3" id="c57541665" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo contextRef="i_2019-12-31" decimals="-3" id="c57541664" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c57541639" unitRef="iso4217-usd">367000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c57541640" unitRef="iso4217-usd">462000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c57541641" unitRef="iso4217-usd">22555000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2019-12-31" decimals="-3" id="c57541642" unitRef="iso4217-usd">23384000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c57541651" unitRef="iso4217-usd">367000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c57541652" unitRef="iso4217-usd">462000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c57541653" unitRef="iso4217-usd">22555000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2018-12-31" decimals="-3" id="c57541654" unitRef="iso4217-usd">23384000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="i_2019-12-31" decimals="-3" id="c57541669" unitRef="iso4217-usd">20975000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <us-gaap:GainLossOnDispositionOfAssets contextRef="d_2019-01-01_2019-12-31" id="c57541290" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GainLossOnDispositionOfAssets contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541291" unitRef="iso4217-usd">47000</us-gaap:GainLossOnDispositionOfAssets>
  <us-gaap:GainLossOnDispositionOfAssets contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541292" unitRef="iso4217-usd">-7000</us-gaap:GainLossOnDispositionOfAssets>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2019-01-01_2019-12-31" id="c57541118" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541119" unitRef="iso4217-usd">47000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541120" unitRef="iso4217-usd">-7000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <us-gaap:Goodwill contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-3" id="c57542203" unitRef="iso4217-usd">44516000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-12-31" decimals="-3" id="c57541026" unitRef="iso4217-usd">51838000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2018-12-31" decimals="-3" id="c57541027" unitRef="iso4217-usd">51838000</us-gaap:Goodwill>
  <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="d_2019-01-01_2019-12-31" id="c57543391">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(i)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Goodwill&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Goodwill is tested for impairment annually and will be tested for impairment between annual tests if an event occurs or circumstances change that would indicate that the carrying amount &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be impaired. Impairment testing for goodwill is done at a reporting unit level. Reporting units are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;one&lt;/div&gt; level below the business segment level but can be combined when reporting units within the same segment have similar economic characteristics. An impairment loss generally would be recognized when the carrying amount of the reporting unit&amp;#x2019;s net assets exceeds the estimated fair value of the reporting unit. The Company consists of a single reporting unit. The Company last performed &amp;#x201c;step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&amp;#x201d;&lt;/div&gt; of the goodwill impairment test as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018. &lt;/div&gt;In testing goodwill for impairment at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018, &lt;/div&gt;the Company primarily utilized the guideline public company (&amp;#x201c;GPC&amp;#x201d;) method under the market approach and the discounted cash flows method (&amp;#x201c;DCF&amp;#x201d;) under the income approach to determine the fair value of the reporting unit for purposes of testing the reporting unit&amp;#x2019;s carrying value of goodwill for impairment. The GPC method derives a value by generating a multiple of EBITDA through the comparison of the Company to similar publicly traded companies. The DCF approach derives a value based on the present value of a series of estimated future cash flows at the valuation date by the application of a discount rate, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;one&lt;/div&gt; that a prudent investor would require before making an investment in our equity securities. The key assumptions used in our approach included:&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 41; Value: 1 --&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 45.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&amp;#x2022;&lt;/td&gt; &lt;td&gt;The reporting unit&amp;#x2019;s estimated financials and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;five&lt;/div&gt;-year projections of financial results, which were based on our strategic plans and long-range forecasts. Sales growth rates represent estimates based on current and forecasted sales mix and market conditions. The profit margins were projected based on historical margins, projected sales mix, current expense structure and anticipated expense modifications.&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: top"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 45.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&amp;#x2022;&lt;/td&gt; &lt;td&gt;The projected terminal value which reflects the total present value of projected cash flows beyond the last period in the DCF. This value reflects a growth rate for the reporting unit, which is approximately the same growth rate of expected inflation into perpetuity.&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 45.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&amp;#x2022;&lt;/td&gt; &lt;td&gt;The discount rate determined using a Weighted Average Cost of Capital method (&amp;#x201c;WACC&amp;#x201d;), which considered market and industry data as well as Company-specific risk factors. Selection of guideline public companies which are similar in size and market capitalization to each other and to the Company.&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;As of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018, &lt;/div&gt;based on our calculations under the above noted approach, the fair value of the reporting unit significantly exceeded the carrying value of the reporting unit. In performing these calculations, management used its most reasonable estimates of the key assumptions discussed above. If the Company&amp;#x2019;s actual operating results and/or the key assumptions utilized in management&amp;#x2019;s calculations differ from our expectations, it is possible that a future impairment charge &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be necessary.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;The Company&amp;#x2019;s annual impairment testing date is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31. &lt;/div&gt;The Company performed a qualitative assessment (&amp;#x201c;step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0&amp;#x201d;&lt;/div&gt;) as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and determined that it was more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; that the fair value of its reporting unit exceeded its carrying amount. As a result, the Company was &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; required to proceed to a &amp;#x201c;step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&amp;#x201d;&lt;/div&gt; impairment assessment. Factors considered included the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt; analysis and the calculated excess fair value over carrying amount, financial performance, forecasts and trends, market cap, regulatory and environmental issues, macro-economic conditions, industry and market considerations, raw material costs and management stability.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0; text-indent: 45pt"&gt;Approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$47.9&lt;/div&gt; million of goodwill is deductible for tax purposes.&lt;br /&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
  <us-gaap:GoodwillAndIntangibleAssetsIntangibleAssetsPolicy contextRef="d_2019-01-01_2019-12-31" id="c57543392">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(j)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Intangible Assets&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Intangible assets with a definite life are amortized on a straight-line basis, with estimated useful lives ranging from &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20&lt;/div&gt; years. Intangible assets with a definite life are tested for impairment whenever events or circumstances indicate that their carrying values &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be recoverable. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No&lt;/div&gt; events or changes in circumstances arose during the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;that required management to perform an impairment analysis.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsIntangibleAssetsPolicy>
  <us-gaap:GrossProfit contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c57542141" unitRef="iso4217-usd">12497000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c57542142" unitRef="iso4217-usd">14371000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2019-07-01_2019-09-30" decimals="-3" id="c57542143" unitRef="iso4217-usd">13321000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2019-10-01_2019-12-31" decimals="-3" id="c57542144" unitRef="iso4217-usd">13770000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c57542161" unitRef="iso4217-usd">10185000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c57542162" unitRef="iso4217-usd">12986000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-07-01_2018-09-30" decimals="-3" id="c57542163" unitRef="iso4217-usd">12431000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-10-01_2018-12-31" decimals="-3" id="c57542164" unitRef="iso4217-usd">12706000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541106" unitRef="iso4217-usd">53959000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541107" unitRef="iso4217-usd">48308000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541108" unitRef="iso4217-usd">35487000</us-gaap:GrossProfit>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541133" unitRef="iso4217-usd">23646000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541134" unitRef="iso4217-usd">18403000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541135" unitRef="iso4217-usd">11859000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeTaxDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470481">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Income Tax&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The Company&amp;#x2019;s income tax provision for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt; consists of the following (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Current&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 55%; font-size: 10pt"&gt;Federal&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,920&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,772&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,117&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;State&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;185&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;439&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;551&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,105&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,211&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,668&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Deferred&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Federal&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;485&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,917&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,091&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;State&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;306&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(36&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;791&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,881&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total income tax provision&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,896&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,092&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,649&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 50; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;The approximate tax effects of temporary differences that give rise to significant portions of the deferred tax assets and liabilities are as follows (in thousands):&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt; text-align: left"&gt;Deferred tax assets:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left"&gt;Reserves&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;362&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Inventory capitalization&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;396&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;421&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Compensation programs&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;578&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;447&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Retirement liability&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Equity-based compensation&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;403&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;290&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Lease liability&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;795&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Intangible assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;73&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;141&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;State tax credits, net of federal impact&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;274&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;257&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left"&gt;Gross deferred tax assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,881&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,936&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left"&gt;Valuation allowance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(136&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left"&gt;Net deferred tax assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,745&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,936&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt; text-align: left"&gt;Deferred tax liabilities:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Excess of book over tax basis of fixed assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,877&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,668&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Goodwill&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,008&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,397&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Right of use asset&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(781&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Total deferred tax liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(7,666&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(6,065&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Net long-term deferred tax liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,921&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,129&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;The amounts recorded as deferred tax assets as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; represent the amount of tax benefits of existing deductible temporary differences or carryforwards that are more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; to be realized through the generation of sufficient future taxable income within the carryforward period. The Company has gross deferred tax assets of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$2.9&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;that it believes are more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; to be realized in the carryforward period. Management reviews the recoverability of deferred tax assets during each reporting period. The Company has provided a valuation allowance of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$136&lt;/div&gt; thousand for deferred tax assets (net of federal tax benefit), primarily related to tax credits generated in its &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; Massachusetts state income tax return that are being carried forward to future periods. The Company is uncertain as to whether it will have sufficient future taxable income in Massachusetts to utilize the credits prior to their expiration date. The valuation allowance against the Company&amp;#x2019;s deferred tax assets &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;require adjustments in the future based on changes in the mix of temporary difference, changes in tax laws, and operating performance.&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;The Company has approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$348&lt;/div&gt; thousand of tax credit carryforwards related to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;one&lt;/div&gt; state jurisdiction that expire between &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2033.&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 51; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;The actual tax provision for the years presented differs from the &amp;#x201c;expected&amp;#x201d; tax provision for those years, computed by applying the U.S. federal corporate rate of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21%&lt;/div&gt; to income before income tax expense as follows:&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Computed &amp;#x201c;expected&amp;#x201d; tax rate&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;34.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increase (decrease) in income taxes resulting from:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;State taxes, net of federal tax benefit&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Meals and entertainment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Tax credits&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(6.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1.9&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(0.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Domestic production deduction&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Non-deductible ISO stock option expense&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Unrecognized tax benefits&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(0.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Excess tax benefits on equity awards&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(0.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1.4&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Excess compensation&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Impact on deferred taxes of new legislation&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(11.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Other&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.4&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Change in valuation allowance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Effective tax rate&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16.5&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22.2&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22.3&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;The Company files income tax returns in the U.S. federal jurisdiction and various state jurisdictions. The&amp;nbsp;Company has &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; been audited by any state for income taxes with the exception of returns filed in Michigan which have been audited through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2004,&lt;/div&gt; income tax returns filed in Massachusetts which have been audited through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2007,&lt;/div&gt; income tax returns filed in Florida which have been audited through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2009,&lt;/div&gt; income tax returns filed in New Jersey which have been audited through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2012,&lt;/div&gt; and income tax returns in Colorado which have been audited through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017.&lt;/div&gt; Federal and state tax returns for the years &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2016&lt;/div&gt; through &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt; remain open to examination by the IRS and various state jurisdictions.&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;A reconciliation of the beginning and ending amount of gross unrecognized tax benefits (&amp;#x201c;UTB&amp;#x201d;) resulting from uncertain tax positions is as follows (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Gross UTB balance at beginning of fiscal year&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Reductions for tax positions of prior years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(150&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Gross UTB balance at end of fiscal year&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$150&lt;/div&gt; thousand, respectively.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;In addition, the total amount of accrued interest and penalties on uncertain tax positions at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$153&lt;/div&gt; thousand, respectively.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;At &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018, &lt;/div&gt;all of the unrecognized tax benefits related to tax returns of a specific state jurisdiction that are currently under examination. On &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 17, 2019 &lt;/div&gt;the Company came to an agreement with the state and on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 21, 2019 &lt;/div&gt;the Company received a check in the amount of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$156,000&lt;/div&gt; as settlement of the unrecognized tax benefits.&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541136" unitRef="iso4217-usd">3896000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541137" unitRef="iso4217-usd">4092000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541138" unitRef="iso4217-usd">2649000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543396">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(n)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Income Taxes&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company&amp;#x2019;s income taxes are accounted for under the asset and liability method. Under the asset and liability method, deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax basis and operating loss and tax credit carryforwards. Deferred tax expense or benefit results from the net change during the year in deferred tax assets and liabilities. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period that includes the enactment date.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 43; Value: 1 --&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company evaluates the need for a valuation allowance to reduce its deferred tax assets to the amount that is more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; to be realized. The Company has considered future taxable income and ongoing prudent and feasible tax planning strategies in assessing the need for a valuation allowance. Should the Company determine that it would &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be able to realize all or part of its deferred tax assets in the future, an adjustment to the deferred tax assets would be charged to income in the period such determination was made.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company recognizes the tax benefit from an uncertain tax position only if it is more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; that the tax position will be sustained on examination by the taxing authorities, based on the technical merits of the position. The tax benefits recognized in the consolidated financial statements from such positions are then measured based on the largest benefit that has a greater than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50%&lt;/div&gt; likelihood of being realized upon settlement. The Company recognizes interest and penalties accrued related to unrecognized tax benefits in tax expense.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541601" unitRef="iso4217-usd">1255000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541602" unitRef="iso4217-usd">3463000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541603" unitRef="iso4217-usd">3878000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesReceivable contextRef="i_2019-12-31" decimals="-3" id="c57541016" unitRef="iso4217-usd">279000</us-gaap:IncomeTaxesReceivable>
  <us-gaap:IncomeTaxesReceivable contextRef="i_2018-12-31" decimals="-3" id="c57541017" unitRef="iso4217-usd">2285000</us-gaap:IncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541315" unitRef="iso4217-usd">-2472000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541316" unitRef="iso4217-usd">1113000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541317" unitRef="iso4217-usd">93000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541300" unitRef="iso4217-usd">327000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541301" unitRef="iso4217-usd">2556000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541302" unitRef="iso4217-usd">132000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541318" unitRef="iso4217-usd">25000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541319" unitRef="iso4217-usd">1472000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541320" unitRef="iso4217-usd">974000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541321" unitRef="iso4217-usd">67000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541322" unitRef="iso4217-usd">35000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541323" unitRef="iso4217-usd">91000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541309" unitRef="iso4217-usd">-2006000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541310" unitRef="iso4217-usd">1268000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541311" unitRef="iso4217-usd">210000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541303" unitRef="iso4217-usd">-1300000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541304" unitRef="iso4217-usd">2295000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541305" unitRef="iso4217-usd">-1288000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541312" unitRef="iso4217-usd">-110000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541313" unitRef="iso4217-usd">76000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541314" unitRef="iso4217-usd">228000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541324" unitRef="iso4217-usd">313000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
  <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541325" unitRef="iso4217-usd">-44000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
  <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541326" unitRef="iso4217-usd">246000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
  <us-gaap:IncreaseDecreaseInPrepaidExpense contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541306" unitRef="iso4217-usd">98000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <us-gaap:IncreaseDecreaseInPrepaidExpense contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541307" unitRef="iso4217-usd">249000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <us-gaap:IncreaseDecreaseInPrepaidExpense contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541308" unitRef="iso4217-usd">-446000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541889" unitRef="xbrli-shares">92000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541890" unitRef="xbrli-shares">83000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541891" unitRef="xbrli-shares">89000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470471">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Other Intangible Assets&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The carrying values of the Company&amp;#x2019;s definite-lived intangible assets as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; are as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;December 31, 2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Tradename &amp;amp; Brand&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Non-&lt;br /&gt; Compete&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Customer&lt;br /&gt; List&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;Estimated useful life &lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Gross amount&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,384&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Accumulated amortization&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(177&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,162&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,409&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Net balance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;297&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;285&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,393&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,975&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;December 31, 2018&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Tradename &amp;amp; Brand&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Non-&lt;br /&gt; Compete&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Customer&lt;br /&gt; List&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;Estimated useful life&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Gross amount&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,384&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Accumulated amortization&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(33&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(85&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,034&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,152&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Net balance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;334&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;377&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,521&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,232&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 47; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Amortization expense related to intangible assets was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.3&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.2&lt;/div&gt; million, and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.3&lt;/div&gt; million for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively. The estimated remaining amortization expense as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;is as follows (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 35%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2020&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White; width: 50%"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2021&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2022&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2023&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,172&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2024&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,164&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Thereafter&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14,868&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Total&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,975&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c57541647" unitRef="iso4217-usd">297000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c57541648" unitRef="iso4217-usd">285000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c57541649" unitRef="iso4217-usd">20393000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-12-31" decimals="-3" id="c57541650" unitRef="iso4217-usd">20975000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c57541659" unitRef="iso4217-usd">334000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c57541660" unitRef="iso4217-usd">377000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c57541661" unitRef="iso4217-usd">21521000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2018-12-31" decimals="-3" id="c57541662" unitRef="iso4217-usd">22232000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:InterestExpense contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541127" unitRef="iso4217-usd">674000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541128" unitRef="iso4217-usd">1320000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541129" unitRef="iso4217-usd">50000</us-gaap:InterestExpense>
  <us-gaap:InterestPaidNet contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541598" unitRef="iso4217-usd">664000</us-gaap:InterestPaidNet>
  <us-gaap:InterestPaidNet contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541599" unitRef="iso4217-usd">1303000</us-gaap:InterestPaidNet>
  <us-gaap:InterestPaidNet contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541600" unitRef="iso4217-usd">47000</us-gaap:InterestPaidNet>
  <us-gaap:InventoryCashFlowPolicy contextRef="d_2019-01-01_2019-12-31" id="c57543388">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(f)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Accounts Receivable&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company periodically reviews the collectability of its accounts receivable. Provisions are recorded for accounts that are potentially uncollectable. Determining adequate reserves for accounts receivable requires management&amp;#x2019;s judgment. Conditions impacting the realizability of the Company&amp;#x2019;s receivables could cause actual asset write-offs to be materially different than the reserved balances as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryCashFlowPolicy>
  <us-gaap:InventoryDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470469">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Inventories&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Inventories consist of the following (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Raw materials&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,540&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,727&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Work in process&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,279&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,521&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Finished goods&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,457&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,328&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total Inventory&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;18,276&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,576&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="i_2019-12-31" decimals="-3" id="c57541626" unitRef="iso4217-usd">5457000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="i_2018-12-31" decimals="-3" id="c57541627" unitRef="iso4217-usd">5328000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <us-gaap:InventoryNet contextRef="i_2019-12-31" decimals="-3" id="c57541628" unitRef="iso4217-usd">18276000</us-gaap:InventoryNet>
  <us-gaap:InventoryNet contextRef="i_2018-12-31" decimals="-3" id="c57541629" unitRef="iso4217-usd">19576000</us-gaap:InventoryNet>
  <us-gaap:InventoryPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543389">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(g)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Inventories&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Inventories include material, labor, and manufacturing overhead and are valued at the lower of cost or net realizable value. Cost is determined using the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-in, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-out (&amp;#x201c;FIFO&amp;#x201d;) method.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company periodically reviews the realizability of its inventory for potential excess or obsolescence. Determining the net realizable value of inventory requires management&amp;#x2019;s judgment. Conditions impacting the realizability of the Company&amp;#x2019;s inventory could cause actual asset write-offs to be materially different than the Company&amp;#x2019;s current estimates as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
  <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="i_2019-12-31" decimals="-3" id="c57541622" unitRef="iso4217-usd">10540000</us-gaap:InventoryRawMaterialsNetOfReserves>
  <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="i_2018-12-31" decimals="-3" id="c57541623" unitRef="iso4217-usd">11727000</us-gaap:InventoryRawMaterialsNetOfReserves>
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="i_2019-12-31" decimals="-3" id="c57541624" unitRef="iso4217-usd">2279000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="i_2018-12-31" decimals="-3" id="c57541625" unitRef="iso4217-usd">2521000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <us-gaap:InvestmentIncomeInterest contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541124" unitRef="iso4217-usd">0</us-gaap:InvestmentIncomeInterest>
  <us-gaap:InvestmentIncomeInterest contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541125" unitRef="iso4217-usd">47000</us-gaap:InvestmentIncomeInterest>
  <us-gaap:InvestmentIncomeInterest contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541126" unitRef="iso4217-usd">216000</us-gaap:InvestmentIncomeInterest>
  <us-gaap:LeaseAndRentalExpense contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542026" unitRef="iso4217-usd">1200000</us-gaap:LeaseAndRentalExpense>
  <us-gaap:LeaseAndRentalExpense contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57542027" unitRef="iso4217-usd">1200000</us-gaap:LeaseAndRentalExpense>
  <us-gaap:LeaseAndRentalExpense contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57542028" unitRef="iso4217-usd">900000</us-gaap:LeaseAndRentalExpense>
  <us-gaap:LeaseCost contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542036" unitRef="iso4217-usd">1468000</us-gaap:LeaseCost>
  <us-gaap:LeaseCostTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-24">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Year Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;December 31, 2019&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;($ in thousands)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Lease cost:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 85%; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,222&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Variable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;219&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Short-term&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total lease cost&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,468&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Cash paid for amounts included in measurement of lease liabilities:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,208&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average remaining lease term (years):&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.69&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average discount rate:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.45&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:LeaseCostTableTextBlock>
  <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-25">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 85%; font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,173&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,118&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;957&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;36&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2024&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Thereafter&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total lease payments&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,284&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Less: Interest&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(194&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Present value of lease liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,090&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="i_2019-12-31" decimals="-3" id="c57542049" unitRef="iso4217-usd">3284000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="i_2019-12-31" id="c57542048" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="i_2019-12-31" decimals="-3" id="c57542043" unitRef="iso4217-usd">1173000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="i_2019-12-31" id="c57542047" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="i_2019-12-31" decimals="-3" id="c57542046" unitRef="iso4217-usd">36000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="i_2019-12-31" decimals="-3" id="c57542045" unitRef="iso4217-usd">957000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="i_2019-12-31" decimals="-3" id="c57542044" unitRef="iso4217-usd">1118000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
  <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="i_2019-12-31" decimals="-3" id="c57542050" unitRef="iso4217-usd">194000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
  <us-gaap:LesseeOperatingLeaseRenewalTerm contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" id="c57542182">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
  <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" id="c57542183">P5Y</us-gaap:LesseeOperatingLeaseTermOfContract>
  <us-gaap:LesseeOperatingLeasesTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470493">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Leases&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The Company adopted ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt; - Leases (&amp;#x201c;ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&amp;#x201d;&lt;/div&gt;) as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019, &lt;/div&gt;using the transition method wherein entities could initially apply the new leases standard at adoption date and recognize a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption. Accordingly, all periods prior to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019 &lt;/div&gt;were presented in accordance with the previous ASC Topic &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;840,&lt;/div&gt; Leases, and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt; retrospective adjustments were made to the comparative periods presented. The adoption of ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt; resulted in an increase to total assets due to the recording of operating lease right-of-use ("ROU") assets and operating lease liabilities of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$4.0&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$4.1&lt;/div&gt; million, respectively, as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019. &lt;/div&gt;The Company did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; have any finance leases at the adoption date. The adoption did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; materially impact the Company&amp;#x2019;s condensed consolidated statements of income or cash flows.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The Company has operating leases for offices, manufacturing plants, vehicles and certain office and manufacturing equipment. Leases with an initial term of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12&lt;/div&gt; months or less are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; recorded on the balance sheet. The Company has elected the practical expedient to account for each separate lease component of a contract and its associated non-lease components as a single lease component, thus causing all fixed payments to be capitalized. The Company also elected the package of practical expedients permitted within the new standard, which among other things, allows the Company to carry forward historical lease classification. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases in lease payments based on changes in index rates or usage, are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; included in the ROU assets or operating lease liabilities. These are expensed as incurred and recorded as variable lease expense. The Company determines if an arrangement is a lease at the inception of a contract. Operating lease ROU assets and operating lease liabilities are stated separately in the condensed consolidated balance sheet.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 55; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;ROU assets represent the Company's right to use an underlying asset during the lease term and operating lease liabilities represent the Company's obligation to make lease payments arising from the lease. ROU assets and operating lease liabilities are recognized at commencement date based on the net present value of fixed lease payments over the lease term. The Company's lease term includes options to extend or terminate the lease when it is reasonably certain that we will exercise that option. ROU assets will also be adjusted for any deferred or accrued rent. As the Company's operating leases do &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; typically provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The Company&amp;#x2019;s incremental borrowing rate is based on its borrowing rate under the Amended and Restated Credit Agreement, adjusted to reflect an estimated fixed rate for the term of the underlying lease. Operating fixed lease expense is recognized on a straight-line basis over the lease term.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin-left: 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Year Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;December 31, 2019&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;($ in thousands)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Lease cost:&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 85%; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,222&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Variable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;219&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Short-term&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total lease cost&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,468&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Cash paid for amounts included in measurement of lease liabilities:&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,208&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average remaining lease term (years):&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.69&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Weighted-average discount rate:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Operating&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.45&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;The aggregate future lease payments for operating leases as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;were as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin-left: 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 85%; font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,173&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,118&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;957&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;36&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2024&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Thereafter&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total lease payments&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,284&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Less: Interest&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(194&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Present value of lease liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,090&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 56; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;The aggregate future lease payments for operating leases as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;were as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin-left: 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 85%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,051&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,070&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,063&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;975&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;36&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,195&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Rent expense amounted to approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.2&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.2&lt;/div&gt; million, and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.9&lt;/div&gt; million, in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
  <us-gaap:LettersOfCreditOutstandingAmount contextRef="i_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="INF" id="c57541701" unitRef="iso4217-usd">700000</us-gaap:LettersOfCreditOutstandingAmount>
  <us-gaap:Liabilities contextRef="i_2019-12-31" decimals="-3" id="c57541062" unitRef="iso4217-usd">26767000</us-gaap:Liabilities>
  <us-gaap:Liabilities contextRef="i_2018-12-31" decimals="-3" id="c57541063" unitRef="iso4217-usd">49141000</us-gaap:Liabilities>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2019-12-31" decimals="-3" id="c57541098" unitRef="iso4217-usd">188758000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2018-12-31" decimals="-3" id="c57541099" unitRef="iso4217-usd">189598000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541050" unitRef="iso4217-usd">16308000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LiabilitiesCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541051" unitRef="iso4217-usd">20658000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity contextRef="i_2018-02-01_CreditFacilityAxis-UnsecuredRevolvingCreditFacilityMember_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="INF" id="c57541695" unitRef="iso4217-usd">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470467">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Receivables&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Receivables consist of the following (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Accounts receivable&amp;#x2013;trade&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;29,134&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28,885&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Less allowance for doubtful receivables&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(486&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(564&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Receivables, net&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28,648&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28,321&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Receivables are written off against these reserves in the period they are determined to be uncollectable, and payments subsequently received on previously written-off receivables are recorded as a reversal of the bad debt provision. The Company performs credit evaluations on its customers and obtains credit insurance on a large percentage of its accounts but does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; generally require collateral. The Company recorded a net reversal of the provision for doubtful accounts of approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$52&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$50&lt;/div&gt; thousand the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock>
  <us-gaap:LongTermDebt contextRef="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember" id="c57541719" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LongTermDebt contextRef="i_2018-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember" decimals="-3" id="c57541720" unitRef="iso4217-usd">8000000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebt contextRef="i_2019-12-31_DebtInstrumentAxis-TermLoanMember" id="c57541721" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LongTermDebt contextRef="i_2018-12-31_DebtInstrumentAxis-TermLoanMember" decimals="-3" id="c57541722" unitRef="iso4217-usd">17143000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebt contextRef="i_2019-12-31" id="c57541723" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LongTermDebt contextRef="i_2018-12-31" decimals="-3" id="c57541724" unitRef="iso4217-usd">25143000</us-gaap:LongTermDebt>
  <us-gaap:LongTermDebtCurrent contextRef="i_2019-12-31" id="c57541725" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LongTermDebtCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541726" unitRef="iso4217-usd">2857000</us-gaap:LongTermDebtCurrent>
  <us-gaap:LongTermDebtNoncurrent contextRef="i_2019-12-31" id="c57541727" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LongTermDebtNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c57541728" unitRef="iso4217-usd">22286000</us-gaap:LongTermDebtNoncurrent>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541362" unitRef="iso4217-usd">-24950000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541363" unitRef="iso4217-usd">26269000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541364" unitRef="iso4217-usd">-475000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541340" unitRef="iso4217-usd">-5774000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541341" unitRef="iso4217-usd">-82329000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541342" unitRef="iso4217-usd">-10375000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541327" unitRef="iso4217-usd">31229000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541328" unitRef="iso4217-usd">21320000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541329" unitRef="iso4217-usd">17469000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541283" unitRef="iso4217-usd">19750000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541284" unitRef="iso4217-usd">14311000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541285" unitRef="iso4217-usd">9210000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541185" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c57541186" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541187" unitRef="iso4217-usd">9210000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541189" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541234" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c57541235" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541236" unitRef="iso4217-usd">14311000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541238" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541269" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c57541270" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541271" unitRef="iso4217-usd">19750000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541273" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c57542145" unitRef="iso4217-usd">3734000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c57542146" unitRef="iso4217-usd">4598000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2019-07-01_2019-09-30" decimals="-3" id="c57542147" unitRef="iso4217-usd">5641000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2019-10-01_2019-12-31" decimals="-3" id="c57542148" unitRef="iso4217-usd">5777000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c57542165" unitRef="iso4217-usd">1777000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c57542166" unitRef="iso4217-usd">3990000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2018-07-01_2018-09-30" decimals="-3" id="c57542167" unitRef="iso4217-usd">4134000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic contextRef="d_2018-10-01_2018-12-31" decimals="-3" id="c57542168" unitRef="iso4217-usd">4410000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
  <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543400">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Recent Accounting Pronouncements&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 2016, &lt;/div&gt;the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;02,&lt;/div&gt; &amp;#x201c;Leases (Accounting Standards Codification (ASC) &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt;),&amp;#x201d; and issued subsequent amendments to the initial guidance in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2018 &lt;/div&gt;within ASU &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;01&lt;/div&gt; and in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; July 2018 &lt;/div&gt;within ASU Nos. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.&lt;/div&gt; The Company adopted ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt; on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019. &lt;/div&gt;See Note &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13&lt;/div&gt; for further details.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2017, &lt;/div&gt;the FASB issued ASU &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;04,&lt;/div&gt; Intangibles&amp;#x2014;Goodwill and Other (ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;350&lt;/div&gt;), Simplifying the Test for Goodwill Impairment. The guidance removes Step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt; of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&amp;#x2019;s carrying value exceeds its fair value, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 15, 2019. &lt;/div&gt;Early adoption is permitted for any impairment tests performed on testing dates after &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2017. &lt;/div&gt;The Company does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; believe adoption will have a material impact on its financial condition or results of operations.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 2016, &lt;/div&gt;the FASB issued accounting standard that requires companies to utilize an impairment model (current expected credit loss, or CECL) for most financial assets measured at amortized cost and certain other financial instruments, which include, but are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; limited to, trade and other receivables. This accounting standard will replace the incurred loss model under current GAAP with a model that reflects expected&amp;nbsp;credit losses&amp;nbsp;and requires consideration of a broader range of reasonable and supportable information to estimate those losses. Effective &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2020, &lt;/div&gt;the Company adopted this standard. The adoption of this standard is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; expected to have a material impact on our Consolidated Financial Statements.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
  <us-gaap:OpenTaxYear contextRef="d_2019-01-01_2019-12-31" id="c57541762">2016 2017 2018 2019</us-gaap:OpenTaxYear>
  <us-gaap:OperatingIncomeLoss contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541121" unitRef="iso4217-usd">24708000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541122" unitRef="iso4217-usd">19612000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541123" unitRef="iso4217-usd">11693000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingLeaseCost contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542033" unitRef="iso4217-usd">1222000</us-gaap:OperatingLeaseCost>
  <us-gaap:OperatingLeaseLiability contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" decimals="-3" id="c57542017" unitRef="iso4217-usd">4100000</us-gaap:OperatingLeaseLiability>
  <us-gaap:OperatingLeaseLiability contextRef="i_2019-12-31" decimals="-3" id="c57542051" unitRef="iso4217-usd">3090000</us-gaap:OperatingLeaseLiability>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541046" unitRef="iso4217-usd">674000</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541047" unitRef="iso4217-usd">0</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c57541058" unitRef="iso4217-usd">2416000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c57541059" unitRef="iso4217-usd">0</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeasePayments contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542038" unitRef="iso4217-usd">1208000</us-gaap:OperatingLeasePayments>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" decimals="-3" id="c57542016" unitRef="iso4217-usd">4000000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2019-12-31" decimals="-3" id="c57541032" unitRef="iso4217-usd">3034000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2018-12-31" decimals="-3" id="c57541033" unitRef="iso4217-usd">0</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="i_2019-12-31" decimals="4" id="c57542042" unitRef="xbrli-pure">0.0445</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2019-12-31" id="c57542040">P2Y251D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDue contextRef="i_2018-12-31" decimals="-3" id="c57542057" unitRef="iso4217-usd">4195000</us-gaap:OperatingLeasesFutureMinimumPaymentsDue>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent contextRef="i_2018-12-31" decimals="-3" id="c57542052" unitRef="iso4217-usd">1051000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears contextRef="i_2018-12-31" decimals="-3" id="c57542056" unitRef="iso4217-usd">36000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears contextRef="i_2018-12-31" decimals="-3" id="c57542055" unitRef="iso4217-usd">975000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears contextRef="i_2018-12-31" decimals="-3" id="c57542054" unitRef="iso4217-usd">1063000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears>
  <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears contextRef="i_2018-12-31" decimals="-3" id="c57542053" unitRef="iso4217-usd">1070000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears>
  <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541736" unitRef="iso4217-usd">2174000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541737" unitRef="iso4217-usd">2632000</us-gaap:OtherAccruedLiabilitiesCurrent>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c57541034" unitRef="iso4217-usd">147000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c57541035" unitRef="iso4217-usd">201000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c57541060" unitRef="iso4217-usd">334000</us-gaap:OtherLiabilitiesNoncurrent>
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="i_2018-12-31" decimals="-3" id="c57541061" unitRef="iso4217-usd">24000</us-gaap:OtherLiabilitiesNoncurrent>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541130" unitRef="iso4217-usd">-388000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541131" unitRef="iso4217-usd">64000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2017-01-01_2017-12-31" id="c57541132" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541359" unitRef="iso4217-usd">512000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541360" unitRef="iso4217-usd">144000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541361" unitRef="iso4217-usd">296000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:PaymentsToAcquireBusinessesGross contextRef="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember" decimals="-4" id="c57542179" unitRef="iso4217-usd">80000000</us-gaap:PaymentsToAcquireBusinessesGross>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2019-01-01_2019-12-31" id="c57541334" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541335" unitRef="iso4217-usd">76978000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
  <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="d_2017-01-01_2017-12-31" id="c57541336" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541331" unitRef="iso4217-usd">5778000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541332" unitRef="iso4217-usd">5428000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541333" unitRef="iso4217-usd">10382000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PreferredStockParOrStatedValuePerShare contextRef="i_2019-12-31" decimals="INF" id="c57541070" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
  <us-gaap:PreferredStockParOrStatedValuePerShare contextRef="i_2018-12-31" decimals="INF" id="c57541071" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
  <us-gaap:PreferredStockSharesAuthorized contextRef="i_2019-12-31" decimals="INF" id="c57541072" unitRef="xbrli-shares">1000000</us-gaap:PreferredStockSharesAuthorized>
  <us-gaap:PreferredStockSharesAuthorized contextRef="i_2018-12-31" decimals="INF" id="c57541073" unitRef="xbrli-shares">1000000</us-gaap:PreferredStockSharesAuthorized>
  <us-gaap:PreferredStockSharesIssued contextRef="i_2019-12-31" decimals="INF" id="c57541074" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesIssued>
  <us-gaap:PreferredStockSharesIssued contextRef="i_2018-12-31" decimals="INF" id="c57541075" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesIssued>
  <us-gaap:PreferredStockSharesOutstanding contextRef="i_2019-12-31" decimals="INF" id="c57541076" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesOutstanding>
  <us-gaap:PreferredStockSharesOutstanding contextRef="i_2018-12-31" decimals="INF" id="c57541077" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesOutstanding>
  <us-gaap:PreferredStockValue contextRef="i_2019-12-31" decimals="-3" id="c57541068" unitRef="iso4217-usd">0</us-gaap:PreferredStockValue>
  <us-gaap:PreferredStockValue contextRef="i_2018-12-31" decimals="-3" id="c57541069" unitRef="iso4217-usd">0</us-gaap:PreferredStockValue>
  <us-gaap:PrepaidExpenseCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541014" unitRef="iso4217-usd">2304000</us-gaap:PrepaidExpenseCurrent>
  <us-gaap:PrepaidExpenseCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541015" unitRef="iso4217-usd">2206000</us-gaap:PrepaidExpenseCurrent>
  <us-gaap:PriorPeriodReclassificationAdjustmentDescription contextRef="d_2019-01-01_2019-12-31" id="c57543401">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revisions&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Certain revisions have been made to the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt; Consolidated Statements of Income to conform to the current year presentation relating to a reclassification of material overcharge settlement to selling, general and administrative expenses. The reclassification resulted in the removal of the material overcharge settlement line item and a decrease in selling, general and administrative expenses of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$104&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$121&lt;/div&gt; thousand for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively. These revisions had &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt; impact on previously reported operating or net income and are deemed immaterial to the previously issued financial statements.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
  <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="d_2019-01-01_2019-12-31" id="c57541350" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541351" unitRef="iso4217-usd">20000000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
  <us-gaap:ProceedsFromIssuanceOfLongTermDebt contextRef="d_2017-01-01_2017-12-31" id="c57541352" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromLinesOfCredit contextRef="d_2019-01-01_2019-12-31" id="c57541344" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromLinesOfCredit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541345" unitRef="iso4217-usd">36000000</us-gaap:ProceedsFromLinesOfCredit>
  <us-gaap:ProceedsFromLinesOfCredit contextRef="d_2017-01-01_2017-12-31" id="c57541346" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541337" unitRef="iso4217-usd">4000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541338" unitRef="iso4217-usd">77000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541339" unitRef="iso4217-usd">7000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-5" id="c57541926" unitRef="iso4217-usd">700000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-5" id="c57541927" unitRef="iso4217-usd">1300000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-5" id="c57541928" unitRef="iso4217-usd">800000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470475">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Property, Plant and Equipment&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Property, plant and equipment consist of the following (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;December 31,&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2018&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Land and improvements&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,191&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,191&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Buildings and improvements&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;35,502&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;35,187&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Leasehold improvements&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,843&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Machinery &amp;amp; equipment&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;66,438&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;62,440&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Furniture, fixtures, computers &amp;amp; software&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6,414&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,119&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Construction in progress&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,522&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;999&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116,089&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;111,779&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;Depreciation and amortization expense of Property, Plant and Equipment for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$6.9&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$6.6&lt;/div&gt; million, and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$5.3&lt;/div&gt; million, respectively.&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LandAndLandImprovementsMember" decimals="-3" id="c57541678" unitRef="iso4217-usd">3191000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-LandAndLandImprovementsMember" decimals="-3" id="c57541679" unitRef="iso4217-usd">3191000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember" decimals="-3" id="c57541680" unitRef="iso4217-usd">35502000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember" decimals="-3" id="c57541681" unitRef="iso4217-usd">35187000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember" decimals="-3" id="c57541682" unitRef="iso4217-usd">3022000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember" decimals="-3" id="c57541683" unitRef="iso4217-usd">2843000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember" decimals="-3" id="c57541684" unitRef="iso4217-usd">66438000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember" decimals="-3" id="c57541685" unitRef="iso4217-usd">62440000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember" decimals="-3" id="c57541686" unitRef="iso4217-usd">6414000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember" decimals="-3" id="c57541687" unitRef="iso4217-usd">7119000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember" decimals="-3" id="c57541688" unitRef="iso4217-usd">1522000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember" decimals="-3" id="c57541689" unitRef="iso4217-usd">999000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31" decimals="-3" id="c57541690" unitRef="iso4217-usd">116089000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2018-12-31" decimals="-3" id="c57541691" unitRef="iso4217-usd">111779000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2019-12-31" decimals="-3" id="c57541024" unitRef="iso4217-usd">56739000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2018-12-31" decimals="-3" id="c57541025" unitRef="iso4217-usd">57667000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543390">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(h)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Property, Plant, and Equipment&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Property, plant, and equipment are stated at cost and are depreciated or amortized using the straight-line method over the estimated useful lives of the assets or the related lease term, if shorter.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Estimated useful lives of property, plant, and equipment are as follows:&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.75in"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.65in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Leasehold improvements&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center"&gt;Shorter of estimated useful life &lt;br /&gt; or remaining lease term&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; width: 63%"&gt;Buildings and improvements (in years)&lt;/td&gt; &lt;td style="font-size: 10pt; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;- &lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;40&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Machinery &amp;amp; equipment (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Furniture, fixtures, computers &amp;amp; software (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Property, plant, and equipment amounts are reviewed for impairment whenever events or changes in circumstances indicate that the carrying amount of an asset &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be recoverable. An impairment loss would be recognized when the carrying amount of an asset exceeds the estimated undiscounted future cash flows expected to result from the use of the asset and its eventual disposition. The amount of the impairment loss to be recorded is calculated by the excess of the asset&amp;#x2019;s carrying value over its fair value. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No&lt;/div&gt; events or changes in circumstances arose during the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;that required management to perform an impairment analysis.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
  <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-12">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;December 31,&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2018&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Land and improvements&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,191&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,191&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Buildings and improvements&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;35,502&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;35,187&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Leasehold improvements&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,843&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Machinery &amp;amp; equipment&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;66,438&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;62,440&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Furniture, fixtures, computers &amp;amp; software&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6,414&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,119&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Construction in progress&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,522&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;999&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;116,089&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;111,779&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember_RangeAxis-MinimumMember" id="c57541510">P20Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember_RangeAxis-MaximumMember" id="c57541512">P40Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MinimumMember" id="c57541513">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MaximumMember" id="c57541515">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember_RangeAxis-MinimumMember" id="c57541516">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember_RangeAxis-MaximumMember" id="c57541518">P7Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
  <us-gaap:ProvisionForDoubtfulAccounts contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541610" unitRef="iso4217-usd">-52000</us-gaap:ProvisionForDoubtfulAccounts>
  <us-gaap:ProvisionForDoubtfulAccounts contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541611" unitRef="iso4217-usd">-50000</us-gaap:ProvisionForDoubtfulAccounts>
  <us-gaap:QuarterlyFinancialInformationTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470503">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;18&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Quarterly Financial Information (unaudited)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Summarized quarterly financial data is as follows (in thousands, except per share data):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q1&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q2&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q3&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q4&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Net sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47,328&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;51,399&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,394&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50,260&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Gross profit&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,497&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14,371&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,321&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,770&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,734&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,598&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,641&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,777&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Basic net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.62&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.76&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.78&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Diluted net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.62&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.75&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.76&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q1&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q2&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q3&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q4&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Net sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;42,931&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47,808&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50,697&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Gross profit&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,185&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,986&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,431&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,706&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,777&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,990&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,134&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,410&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Basic net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.24&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.56&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.60&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Diluted net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.24&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.56&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.59&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:QuarterlyFinancialInformationTextBlock>
  <us-gaap:ReceivablesNetCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541619" unitRef="iso4217-usd">28648000</us-gaap:ReceivablesNetCurrent>
  <us-gaap:ReceivablesNetCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541620" unitRef="iso4217-usd">28321000</us-gaap:ReceivablesNetCurrent>
  <us-gaap:RepaymentsOfLinesOfCredit contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541347" unitRef="iso4217-usd">8000000</us-gaap:RepaymentsOfLinesOfCredit>
  <us-gaap:RepaymentsOfLinesOfCredit contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541348" unitRef="iso4217-usd">28000000</us-gaap:RepaymentsOfLinesOfCredit>
  <us-gaap:RepaymentsOfLinesOfCredit contextRef="d_2017-01-01_2017-12-31" id="c57541349" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RepaymentsOfLongTermDebt contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541353" unitRef="iso4217-usd">17143000</us-gaap:RepaymentsOfLongTermDebt>
  <us-gaap:RepaymentsOfLongTermDebt contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541354" unitRef="iso4217-usd">2857000</us-gaap:RepaymentsOfLongTermDebt>
  <us-gaap:RepaymentsOfLongTermDebt contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541355" unitRef="iso4217-usd">856000</us-gaap:RepaymentsOfLongTermDebt>
  <us-gaap:ResearchAndDevelopmentExpense contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541476" unitRef="iso4217-usd">9500000</us-gaap:ResearchAndDevelopmentExpense>
  <us-gaap:ResearchAndDevelopmentExpense contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541477" unitRef="iso4217-usd">10500000</us-gaap:ResearchAndDevelopmentExpense>
  <us-gaap:ResearchAndDevelopmentExpense contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541478" unitRef="iso4217-usd">5000000</us-gaap:ResearchAndDevelopmentExpense>
  <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="d_2019-01-01_2019-12-31" id="c57543399">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(q)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Research and Development&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;On a routine basis, the Company incurs costs related to research and development activity. These costs are expensed as incurred. Approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$9.5&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$10.5&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$5.0&lt;/div&gt; million were expensed in the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
  <us-gaap:RestructuringCharges contextRef="d_2019-01-01_2019-12-31" id="c57541115" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringCharges contextRef="d_2018-01-01_2018-12-31" id="c57541116" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RestructuringCharges contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541117" unitRef="iso4217-usd">63000</us-gaap:RestructuringCharges>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2019-12-31" decimals="-3" id="c57541090" unitRef="iso4217-usd">131552000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2018-12-31" decimals="-3" id="c57541091" unitRef="iso4217-usd">111802000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c57542137" unitRef="iso4217-usd">47328000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-04-01_2019-06-30" decimals="-3" id="c57542138" unitRef="iso4217-usd">51399000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-07-01_2019-09-30" decimals="-3" id="c57542139" unitRef="iso4217-usd">49394000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-10-01_2019-12-31" decimals="-3" id="c57542140" unitRef="iso4217-usd">50260000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-03-31" decimals="-3" id="c57542157" unitRef="iso4217-usd">42931000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-04-01_2018-06-30" decimals="-3" id="c57542158" unitRef="iso4217-usd">49019000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-07-01_2018-09-30" decimals="-3" id="c57542159" unitRef="iso4217-usd">47808000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-10-01_2018-12-31" decimals="-3" id="c57542160" unitRef="iso4217-usd">50697000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541100" unitRef="iso4217-usd">198381000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541101" unitRef="iso4217-usd">190455000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541102" unitRef="iso4217-usd">147843000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-MedicalMember" decimals="-3" id="c57542094" unitRef="iso4217-usd">128915000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-MedicalMember" decimals="-3" id="c57542096" unitRef="iso4217-usd">110282000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-MedicalMember" decimals="-3" id="c57542098" unitRef="iso4217-usd">70090000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c57542100" unitRef="iso4217-usd">20004000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c57542102" unitRef="iso4217-usd">20022000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c57542104" unitRef="iso4217-usd">23119000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c57542106" unitRef="iso4217-usd">17669000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c57542108" unitRef="iso4217-usd">24989000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c57542110" unitRef="iso4217-usd">21328000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c57542112" unitRef="iso4217-usd">13778000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c57542114" unitRef="iso4217-usd">13130000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c57542116" unitRef="iso4217-usd">11521000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c57542118" unitRef="iso4217-usd">9607000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c57542120" unitRef="iso4217-usd">10579000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c57542122" unitRef="iso4217-usd">9826000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c57542124" unitRef="iso4217-usd">8408000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c57542126" unitRef="iso4217-usd">11453000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c57542128" unitRef="iso4217-usd">11959000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_ProductOrServiceAxis-ProductMember" decimals="-3" id="c57541561" unitRef="iso4217-usd">193016000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_ProductOrServiceAxis-ProductMember" decimals="-3" id="c57541562" unitRef="iso4217-usd">183186000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_ProductOrServiceAxis-ProductMember" decimals="-3" id="c57541563" unitRef="iso4217-usd">146275000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c57541564" unitRef="iso4217-usd">2730000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c57541565" unitRef="iso4217-usd">4302000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c57541566" unitRef="iso4217-usd">1181000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-12-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c57541567" unitRef="iso4217-usd">2635000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2018-01-01_2018-12-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c57541568" unitRef="iso4217-usd">2967000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2017-01-01_2017-12-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c57541569" unitRef="iso4217-usd">387000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543393">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(k)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revenue Recognition&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Beginning in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; the Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;606&lt;/div&gt; which include (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt;) identifying the contract with a customer, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;) identifying separate performance obligations within the contract, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;) determining the transaction price, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4&lt;/div&gt;) allocating the transaction price to the performance obligations, and (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt;) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery primarily upon customer acceptance, with the exception of certain tooling where control does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; transfer to the customer, resulting in revenue being recognized over the estimated time for which parts are produced with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. The Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer. In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&amp;#x2019;s promise to transfer the good and are expensed when revenue is recognized.&lt;/div&gt; &lt;div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;For the year &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; prior to ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;606,&lt;/div&gt; the Company recognized revenue at the time of shipment when title and risk of loss have passed to the customer, persuasive evidence of an arrangement exists, performance of its obligation is complete, its price to the buyer is fixed or determinable, and the Company is reasonably assured of collection. Determination of these criteria, in some cases, requires management&amp;#x2019;s judgment.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
  <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470461">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Revenue Recognition&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Disaggregated Revenue&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The following table presents the Company&amp;#x2019;s revenue disaggregated by the major types of goods and services sold to our customers (in thousands) (See Note &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17&lt;/div&gt; for further information regarding net sales by market):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: #0070C0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-style: italic; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net sales of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 55%; font-size: 10pt; text-align: left"&gt;Products&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;193,016&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;183,186&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;146,275&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Tooling and Machinery&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,730&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,302&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,181&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Engineering services&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,635&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,967&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;387&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Total net sales&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;198,381&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;190,455&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;147,843&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Contract balances&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Timing of revenue recognition &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;differ from the timing of invoicing to customers. When invoicing occurs prior to revenue recognition, the Company has deferred revenue, or contract liabilities, included within &amp;#x201c;deferred revenue&amp;#x201d; on the condensed consolidated balance sheet.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 45; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The following table presents opening and closing balances of contract liabilities for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; text-indent: 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; text-indent: 27.35pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Liabilities&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Years Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Deferred revenue - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,507&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;871&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Acquired in Dielectrics business combination&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,175&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increases due to consideration received from customers&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,216&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,188&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Revenue recognized&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,149&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,727&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Deferred revenue - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,574&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,507&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;Revenue recognized during the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; from amounts included in deferred revenue at the beginning of the period were approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$1.7&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$0.6&lt;/div&gt; million, respectively.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;When invoicing occurs after revenue recognition, the Company has unbilled receivables (contract assets) included within &amp;#x201c;receivables&amp;#x201d; on the condensed consolidated balance sheet.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;The following table presents opening and closing balances of contract assets for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Contract Assets&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;Years Ended&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Unbilled Receivables - beginning of period&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increases due to revenue recognized - not invoiced to customers&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;831&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;301&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Decreases due to customer invoicing&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(824&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(236&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Unbilled Receivables - end of period&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
  <us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-8">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Accounts receivable&amp;#x2013;trade&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;29,134&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28,885&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Less allowance for doubtful receivables&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(486&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(564&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Receivables, net&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28,648&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28,321&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock>
  <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-14">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Compensation&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,961&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,542&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Benefits / self-insurance reserve&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,033&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,153&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Paid time off&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,315&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,131&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;Other&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,174&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,632&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,483&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,458&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
  <us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-7">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Years Ended December 31,&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2018&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2017&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;(in thousands)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Cash paid for:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 55%; font-size: 10pt"&gt;Interest&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;664&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,303&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Income taxes, net of refunds&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,255&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,463&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,878&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Non-cash investing and financing activities:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Capital additions accrued but not yet paid&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;213&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;218&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;85&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
  <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-15">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Current&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 55%; font-size: 10pt"&gt;Federal&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,920&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,772&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,117&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;State&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;185&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;439&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;551&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,105&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,211&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,668&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Deferred&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Federal&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;485&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,917&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,091&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;State&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;306&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(36&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;791&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,881&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,019&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total income tax provision&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,896&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,092&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,649&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
  <us-gaap:ScheduleOfDebtInstrumentsTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-13">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Revolving credit facility&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,000&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Term loan&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,143&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Total long-term debt&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25,143&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt"&gt;Current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,857&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Long-term debt, excluding current portion&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,286&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDebtInstrumentsTextBlock>
  <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-16">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt; text-align: left"&gt;Deferred tax assets:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left"&gt;Reserves&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;362&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Inventory capitalization&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;396&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;421&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Compensation programs&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;578&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;447&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Retirement liability&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Equity-based compensation&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;403&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;290&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Lease liability&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;795&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Intangible assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;73&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;141&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;State tax credits, net of federal impact&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;274&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;257&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left"&gt;Gross deferred tax assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,881&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,936&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left"&gt;Valuation allowance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(136&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left"&gt;Net deferred tax assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,745&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,936&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt; text-align: left"&gt;Deferred tax liabilities:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Excess of book over tax basis of fixed assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,877&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,668&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Goodwill&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,008&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,397&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Right of use asset&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(781&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Total deferred tax liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(7,666&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(6,065&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Net long-term deferred tax liabilities&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,921&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(4,129&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
  <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-17">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Computed &amp;#x201c;expected&amp;#x201d; tax rate&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;34.0&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Increase (decrease) in income taxes resulting from:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;State taxes, net of federal tax benefit&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Meals and entertainment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Tax credits&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(6.2&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1.9&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(0.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Domestic production deduction&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Non-deductible ISO stock option expense&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Unrecognized tax benefits&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(0.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Excess tax benefits on equity awards&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(0.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1.4&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Excess compensation&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.6&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.8&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Impact on deferred taxes of new legislation&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(11.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Other&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.4&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.5&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Change in valuation allowance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.1&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Effective tax rate&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16.5&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22.2&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22.3&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
  <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-3">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.63in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Share-based compensation expense&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,591&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,212&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,068&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
  <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-10">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;December 31, 2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Tradename &amp;amp; Brand&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Non-&lt;br /&gt; Compete&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Customer&lt;br /&gt; List&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;Estimated useful life &lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Gross amount&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,384&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Accumulated amortization&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(177&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,162&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,409&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Net balance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;297&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;285&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,393&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,975&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;December 31, 2018&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Tradename &amp;amp; Brand&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Non-&lt;br /&gt; Compete&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Customer&lt;br /&gt; List&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;Estimated useful life&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Gross amount&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,384&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Accumulated amortization&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(33&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(85&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,034&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,152&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Net balance&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;334&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;377&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,521&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,232&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
  <us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-26">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 85%; font-size: 10pt; text-align: left"&gt;2019&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,051&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,070&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2021&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,063&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;2022&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;975&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;2023&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;36&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,195&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock>
  <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-9">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Raw materials&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,540&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,727&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Work in process&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,279&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,521&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Finished goods&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,457&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,328&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Total Inventory&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;18,276&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;19,576&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
  <us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-29">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q1&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q2&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q3&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q4&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Net sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47,328&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;51,399&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,394&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50,260&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Gross profit&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,497&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14,371&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,321&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,770&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,734&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,598&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,641&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5,777&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Basic net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.62&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.76&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.78&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Diluted net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.50&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.62&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.75&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.76&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q1&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q2&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q3&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;Q4&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt; text-align: left"&gt;Net sales&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;42,931&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;49,019&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47,808&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50,697&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Gross profit&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,185&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,986&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,431&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12,706&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Net income&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,777&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3,990&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,134&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,410&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Basic net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.24&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.56&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.60&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Diluted net income per share&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.24&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.54&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.56&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0.59&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock>
  <us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-30">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Consideration Paid:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; width: 35%; font-size: 10pt; text-align: left"&gt;Cash paid at closing&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;80,000&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White; width: 50%"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Working capital adjustment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;250&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Cash from Dielectrics&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,272&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Total consideration&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Purchase Price Allocation:&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Accounts receivable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,384&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Inventory&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,418&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Other current assets&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;122&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Property, plant and equipment&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4,600&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Customer list&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22,555&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt"&gt;Non-compete&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;462&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;Trade name and brand&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;367&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; padding-bottom: 1pt"&gt;Goodwill&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;44,516&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Total identifiable assets&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;81,424&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Accounts payable&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(1,325&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left"&gt;Accrued expenses&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(946&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Deferred revenue&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(2,175&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="text-indent: 0pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net assets acquired&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;76,978&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock>
  <us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-28">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2018&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2017&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Market&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 28%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Medical&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 3%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;128,915&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 3%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;110,282&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;57.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 3%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;70,090&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Automotive&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,004&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,119&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Consumer&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,669&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24,989&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,328&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Aerospace &amp;amp; Defense&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,778&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,130&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,521&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7.8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Industrial&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9,607&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,579&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9,826&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Electronics&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,408&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,453&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,959&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left; text-indent: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;198,381&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;190,455&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;147,843&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock>
  <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-22">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Restricted&lt;br /&gt; Stock Units&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Weighted&lt;br /&gt; Average Award&lt;br /&gt; Date Fair Value&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Outstanding at December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;72,996&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.60&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Awarded&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;64,701&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33.55&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Shares vested&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(20,529&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23.74&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Forfeitures&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(3,302&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;33.31&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Outstanding at December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;113,866&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28.36&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
  <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-21">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Shares Under&lt;br /&gt; Options&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted&lt;br /&gt; Average&lt;br /&gt; Exercise&lt;br /&gt; Price&lt;/div&gt;&lt;br /&gt; &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400"&gt;(per share)&lt;/div&gt;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Weighted&lt;br /&gt; Average&lt;br /&gt; Remaining&lt;br /&gt; Contractual&lt;br /&gt; Life&lt;/div&gt;&lt;br /&gt; &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400"&gt;(in years)&lt;/div&gt;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Aggregate&lt;br /&gt; Intrinsic&lt;br /&gt; Value&lt;/div&gt;&lt;br /&gt; &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400"&gt;(in thousands)&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 48%; font-size: 10pt"&gt;Outstanding December 31, 2018&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;134,043&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20.46&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 10%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right; width: 10%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Granted&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;16,536&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;38.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Exercised&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(44,965&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15.68&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Outstanding December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;105,614&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25.34&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,563&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;Exercisable at December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;85,328&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;22.62&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.10&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,303&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Vested and expected to vest at December 31, 2019&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;105,614&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;25.34&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.70&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2,563&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
  <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-4">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.63in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 54%; font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected volatility&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28.9&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.7&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.4%&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;29.1%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected dividends&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Risk-free interest rate&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.56%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.84%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Exercise price&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;38.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31.20&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$27.05&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; - &lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$28.70&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected term (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; to &lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.8&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Weighted-average grant date fair value&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12.70&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.15&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$5.59&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 6.75pt 0pt 5.5pt"&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$8.51&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
  <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-18">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt; text-align: left"&gt;Gross UTB balance at beginning of fiscal year&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Reductions for tax positions of prior years&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;(150&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;)&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Gross UTB balance at end of fiscal year&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;150&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
  <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-19">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left"&gt;Basic weighted average common shares outstanding during the year&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,424&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,347&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,248&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;Weighted average common equivalent shares due to stock options and restricted stock units&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;92&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;83&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;89&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Diluted weighted average common shares outstanding during the year&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,516&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,430&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7,337&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
  <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="d_2019-01-01_2019-12-31" id="c-11">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 35%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2020&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White; width: 50%"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2021&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2022&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,257&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2023&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,172&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2024&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,164&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Thereafter&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14,868&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Total&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; padding-bottom: 2.5pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,975&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="background-color: White"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
  <us-gaap:SegmentReportingDisclosureTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470501">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Segment Data&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company consists of a single operating and reportable segment.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Revenues from customers outside of the United States are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; material. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No&lt;/div&gt; customer comprised more than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10%&lt;/div&gt; of the Company&amp;#x2019;s consolidated revenues for the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019. &lt;/div&gt;A vast majority of the Company&amp;#x2019;s assets are located in the United States.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 58; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;The Company&amp;#x2019;s custom products are primarily sold to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Sales by market for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt; are as follows (in thousands):&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2019&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2018&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;2017&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Market&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 28%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Medical&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 3%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;128,915&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;65.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 3%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;110,282&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;57.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 3%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;70,090&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 8%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;47.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Automotive&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,004&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20,022&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;23,119&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Consumer&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17,669&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;24,989&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;21,328&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;14.4&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Aerospace &amp;amp; Defense&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,778&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13,130&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.9&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,521&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7.8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Industrial&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9,607&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10,579&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;9,826&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Electronics&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8,408&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4.2&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,453&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 1pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11,959&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;8.1&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left; text-indent: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;Net Sales&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;198,381&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;190,455&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-bottom: 2.5pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;$&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;147,843&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;100.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;Certain amounts for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt; were reclassified between markets to conform to the current year presentation.&lt;/div&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
  <us-gaap:SegmentReportingPolicyPolicyTextBlock contextRef="d_2019-01-01_2019-12-31" id="c57543397">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(o)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Segments and Related Information&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company follows the provisions of Accounting Standards Codification (ASC) &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;280,&lt;/div&gt; &lt;div style="display: inline; font-style: italic;"&gt;Segment Reporting&lt;/div&gt;, which establish standards for the way public business enterprises report information and operating segments in annual financial statements (see Note &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17&lt;/div&gt;).&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
  <us-gaap:SelfInsuranceReserveCurrent contextRef="i_2019-12-31" decimals="-3" id="c57541732" unitRef="iso4217-usd">1033000</us-gaap:SelfInsuranceReserveCurrent>
  <us-gaap:SelfInsuranceReserveCurrent contextRef="i_2018-12-31" decimals="-3" id="c57541733" unitRef="iso4217-usd">1153000</us-gaap:SelfInsuranceReserveCurrent>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2018-01-01_2018-12-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541505" unitRef="iso4217-usd">-104000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2017-01-01_2017-12-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c57541506" unitRef="iso4217-usd">-121000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541109" unitRef="iso4217-usd">29251000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541110" unitRef="iso4217-usd">27654000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541111" unitRef="iso4217-usd">23724000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:ShareBasedCompensation contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541293" unitRef="iso4217-usd">1591000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensation contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541294" unitRef="iso4217-usd">1212000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensation contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541295" unitRef="iso4217-usd">1068000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541991" unitRef="xbrli-shares">3302</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541992" unitRef="iso4217-usd-per-xbrli-shares">33.31</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember" decimals="INF" id="c57541919" unitRef="xbrli-shares">5442</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541987" unitRef="xbrli-shares">64701</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541988" unitRef="iso4217-usd-per-xbrli-shares">33.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="i_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541985" unitRef="xbrli-shares">72996</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541993" unitRef="xbrli-shares">113866</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541986" unitRef="iso4217-usd-per-xbrli-shares">23.60</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541994" unitRef="iso4217-usd-per-xbrli-shares">28.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541989" unitRef="xbrli-shares">20529</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541990" unitRef="iso4217-usd-per-xbrli-shares">23.74</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice contextRef="i_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="INF" id="c57541537" unitRef="iso4217-usd-per-xbrli-shares">38.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice contextRef="i_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="INF" id="c57541538" unitRef="iso4217-usd-per-xbrli-shares">31.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice contextRef="i_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember" decimals="INF" id="c57541539" unitRef="iso4217-usd-per-xbrli-shares">27.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice contextRef="i_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember" decimals="INF" id="c57541541" unitRef="iso4217-usd-per-xbrli-shares">28.70</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember" id="c57541527" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember" id="c57541528" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember" id="c57541529" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember" id="c57541531" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="4" id="c57541522" unitRef="xbrli-pure">0.289</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="4" id="c57541523" unitRef="xbrli-pure">0.277</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember" decimals="4" id="c57541524" unitRef="xbrli-pure">0.274</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember" decimals="4" id="c57541526" unitRef="xbrli-pure">0.291</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="4" id="c57541532" unitRef="xbrli-pure">0.023</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="4" id="c57541533" unitRef="xbrli-pure">0.027</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember" decimals="4" id="c57541534" unitRef="xbrli-pure">0.0156</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember" decimals="4" id="c57541536" unitRef="xbrli-pure">0.0184</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized contextRef="d_2019-01-01_2019-12-31_PlanNameAxis-The2003IncentivePlanMember" decimals="INF" id="c57541900" unitRef="xbrli-shares">108424</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized contextRef="i_2011-06-08_PlanNameAxis-The2003IncentivePlanMember" decimals="INF" id="c57541897" unitRef="xbrli-shares">1252613</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized contextRef="i_2019-12-31_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember" decimals="INF" id="c57541916" unitRef="xbrli-shares">975000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant contextRef="i_2019-12-31_PlanNameAxis-The2003IncentivePlanMember" decimals="INF" id="c57541903" unitRef="xbrli-shares">803244</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant contextRef="i_2019-12-31_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember" decimals="INF" id="c57541920" unitRef="xbrli-shares">79648</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541977" unitRef="xbrli-shares">85328</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541978" unitRef="iso4217-usd-per-xbrli-shares">22.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-5" id="c57541923" unitRef="iso4217-usd">1000000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-5" id="c57541924" unitRef="iso4217-usd">1200000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-5" id="c57541925" unitRef="iso4217-usd">600000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember" decimals="INF" id="c57541917" unitRef="xbrli-shares">365026</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541965" unitRef="xbrli-shares">16536</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="INF" id="c57541547" unitRef="iso4217-usd-per-xbrli-shares">12.70</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember" decimals="INF" id="c57541548" unitRef="iso4217-usd-per-xbrli-shares">10.15</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember" decimals="INF" id="c57541549" unitRef="iso4217-usd-per-xbrli-shares">5.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember" decimals="INF" id="c57541551" unitRef="iso4217-usd-per-xbrli-shares">8.51</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c57541976" unitRef="iso4217-usd">2563000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2019-12-31_PlanNameAxis-The2003IncentivePlanMember" decimals="INF" id="c57541902" unitRef="xbrli-shares">10000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember" decimals="INF" id="c57541918" unitRef="xbrli-shares">95614</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541961" unitRef="xbrli-shares">134043</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541973" unitRef="xbrli-shares">105614</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541962" unitRef="iso4217-usd-per-xbrli-shares">20.46</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541974" unitRef="iso4217-usd-per-xbrli-shares">25.34</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541982" unitRef="iso4217-usd-per-xbrli-shares">25.34</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c57541984" unitRef="iso4217-usd">2563000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541981" unitRef="xbrli-shares">105614</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod contextRef="d_2019-06-05_2019-06-05_PlanNameAxis-The2003IncentivePlanMember_RelatedPartyTransactionsByRelatedPartyAxis-ChairmanChiefExecutiveOfficerAndPresidentMember_StatementEquityComponentsAxis-CommonStockMember" decimals="INF" id="c57541938" unitRef="xbrli-shares">16536</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541970" unitRef="iso4217-usd-per-xbrli-shares">15.68</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541966" unitRef="iso4217-usd-per-xbrli-shares">38.61</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="d_2019-01-01_2019-12-31" id="c57543394">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(l)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Share-Based Compensation&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;When accounting for equity instruments exchanged for employee services, share-based compensation cost is measured at the grant date, based on the calculated fair value of the award, and is recognized as an expense over the employee&amp;#x2019;s requisite service period (generally the vesting period of the equity grant). Forfeitures are expensed as they occur.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company issues share-based awards through several plans that are described in detail in Note&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12.&lt;/div&gt; The compensation cost charged against income for those plans is included in selling, general &amp;amp; administrative expenses as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Share-based compensation expense&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,591&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,212&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,068&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The compensation expense for stock options granted during the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;-year period ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019,&lt;/div&gt; was determined as the fair value of the options using the Black Scholes valuation model. The assumptions are noted as follows:&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin-left: 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 54%; font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected volatility&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28.9&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.7&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.4%&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;29.1%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected dividends&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Risk-free interest rate&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.56%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.84%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Exercise price&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;38.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31.20&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$27.05&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; - &lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$28.70&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected term (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; to &lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.8&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Weighted-average grant date fair value&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12.70&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.15&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$5.59&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 6.75pt 0pt 5.5pt"&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$8.51&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The stock volatility for each grant is determined based on a review of the experience of the weighted average of historical daily price changes of the Company&amp;#x2019;s common stock over the expected option term, and the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding with the expected term of the option. The expected term is estimated based on historical option exercise activity.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The total income tax benefit recognized in the consolidated statements of income for share-based compensation arrangements was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$653&lt;/div&gt; thousand, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$544&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$525&lt;/div&gt; thousand for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember" id="c57541542">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember" id="c57541543">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember" id="c57541544">P2Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember" id="c57541546">P5Y292D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c57541980" unitRef="iso4217-usd">2303000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c57541979">P5Y36D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c57541975">P5Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c57541983">P5Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharesOutstanding contextRef="i_2016-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541156" unitRef="xbrli-shares">7212000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2016-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541160" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541191" unitRef="xbrli-shares">7280000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541195" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541240" unitRef="xbrli-shares">7385000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541244" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541275" unitRef="xbrli-shares">7446000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541279" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541942" unitRef="xbrli-shares">8341</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541945" unitRef="xbrli-shares">5238</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c57541946" unitRef="xbrli-shares">4377</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541177" unitRef="xbrli-shares">-11000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541181" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541212" unitRef="xbrli-shares">-5000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541216" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541261" unitRef="xbrli-shares">-13000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541265" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:ShortTermLeaseCost contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542035" unitRef="iso4217-usd">27000</us-gaap:ShortTermLeaseCost>
  <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="d_2019-01-01_2019-12-31" id="s1470457">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 0"&gt;&lt;/td&gt; &lt;td style="width: 27.35pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Summary of Significant Accounting Policies&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;UFP Technologies, Inc. (&amp;#x201c;the Company&amp;#x201d;) is an innovative designer and custom converter of foams, plastics, composites and natural fiber products principally serving the medical, automotive, aerospace and defense, consumer, electronics and industrial markets. The Company was incorporated in the State of Delaware in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1993.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(a)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Principles of Consolidation&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The consolidated financial statements include the accounts and results of operations of UFP Technologies, Inc., its wholly-owned subsidiaries, Moulded Fibre Technology, Inc., Simco Industries, Inc. Dielectrics, Inc. and UFP Realty LLC, and its wholly-owned subsidiaries, UFP MA LLC, UFP CO LLC, UFP FL LLC, UFP TX LLC, UFP MI LLC, and UFP IA LLC. All significant intercompany balances and transactions have been eliminated in consolidation. The Company has evaluated all subsequent events through the date of this filing.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(b)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Use of Estimates&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The preparation of consolidated financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, including allowance for doubtful accounts and the net realizable value of inventory, and the fair value of goodwill, and disclosure of contingent assets and liabilities at the date of the consolidated financial statements, and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(c)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Fair Value Measurement&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;The Company defines fair value as the price that would be received from selling an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. When determining the fair value for assets and liabilities, which are required to be recorded at fair value, the Company considers the principal or most advantageous market in which the Company would transact and the market-based risk measurement or assumptions that market participants would use in pricing the asset or liability, such as inherent risk, transfer restrictions, and credit risk.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;The Company has &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; elected fair value accounting for any financial instruments for which fair value accounting is optional.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(d)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Fair Value of Financial Instruments&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Cash and cash equivalents, accounts receivable, accounts payable, accrued expenses and other liabilities are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&amp;#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the Company&amp;#x2019;s current incremental borrowing rate.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(e)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Cash and Cash Equivalents&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company considers all highly liquid investments with original maturities of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt; months or less to be cash equivalents. At &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; the Company did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt;&lt;/div&gt; have any cash equivalents.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company maintains its cash in bank deposit accounts, money market funds, and certificates of deposit that at times exceed federally insured limits. The Company periodically reviews the financial stability of institutions holding its accounts and does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; believe it is exposed to any significant custodial credit risk on cash. The amounts contained within the Company&amp;#x2019;s main operating accounts at Bank of America and TD Bank at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;exceed the federal depository insurance limit by approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$4.7&lt;/div&gt; million.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 40; Value: 1 --&gt;  &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(f)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Accounts Receivable&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company periodically reviews the collectability of its accounts receivable. Provisions are recorded for accounts that are potentially uncollectable. Determining adequate reserves for accounts receivable requires management&amp;#x2019;s judgment. Conditions impacting the realizability of the Company&amp;#x2019;s receivables could cause actual asset write-offs to be materially different than the reserved balances as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(g)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Inventories&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Inventories include material, labor, and manufacturing overhead and are valued at the lower of cost or net realizable value. Cost is determined using the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-in, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-out (&amp;#x201c;FIFO&amp;#x201d;) method.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company periodically reviews the realizability of its inventory for potential excess or obsolescence. Determining the net realizable value of inventory requires management&amp;#x2019;s judgment. Conditions impacting the realizability of the Company&amp;#x2019;s inventory could cause actual asset write-offs to be materially different than the Company&amp;#x2019;s current estimates as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(h)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Property, Plant, and Equipment&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Property, plant, and equipment are stated at cost and are depreciated or amortized using the straight-line method over the estimated useful lives of the assets or the related lease term, if shorter.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Estimated useful lives of property, plant, and equipment are as follows:&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.75in"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.65in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Leasehold improvements&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center"&gt;Shorter of estimated useful life &lt;br /&gt; or remaining lease term&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; width: 63%"&gt;Buildings and improvements (in years)&lt;/td&gt; &lt;td style="font-size: 10pt; width: 1%"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;- &lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; width: 12%"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;40&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Machinery &amp;amp; equipment (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;15&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;Furniture, fixtures, computers &amp;amp; software (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: right; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;-&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;7&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Property, plant, and equipment amounts are reviewed for impairment whenever events or changes in circumstances indicate that the carrying amount of an asset &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be recoverable. An impairment loss would be recognized when the carrying amount of an asset exceeds the estimated undiscounted future cash flows expected to result from the use of the asset and its eventual disposition. The amount of the impairment loss to be recorded is calculated by the excess of the asset&amp;#x2019;s carrying value over its fair value. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No&lt;/div&gt; events or changes in circumstances arose during the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;that required management to perform an impairment analysis.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(i)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Goodwill&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Goodwill is tested for impairment annually and will be tested for impairment between annual tests if an event occurs or circumstances change that would indicate that the carrying amount &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be impaired. Impairment testing for goodwill is done at a reporting unit level. Reporting units are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;one&lt;/div&gt; level below the business segment level but can be combined when reporting units within the same segment have similar economic characteristics. An impairment loss generally would be recognized when the carrying amount of the reporting unit&amp;#x2019;s net assets exceeds the estimated fair value of the reporting unit. The Company consists of a single reporting unit. The Company last performed &amp;#x201c;step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&amp;#x201d;&lt;/div&gt; of the goodwill impairment test as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018. &lt;/div&gt;In testing goodwill for impairment at &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018, &lt;/div&gt;the Company primarily utilized the guideline public company (&amp;#x201c;GPC&amp;#x201d;) method under the market approach and the discounted cash flows method (&amp;#x201c;DCF&amp;#x201d;) under the income approach to determine the fair value of the reporting unit for purposes of testing the reporting unit&amp;#x2019;s carrying value of goodwill for impairment. The GPC method derives a value by generating a multiple of EBITDA through the comparison of the Company to similar publicly traded companies. The DCF approach derives a value based on the present value of a series of estimated future cash flows at the valuation date by the application of a discount rate, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;one&lt;/div&gt; that a prudent investor would require before making an investment in our equity securities. The key assumptions used in our approach included:&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 41; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 45.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&amp;#x2022;&lt;/td&gt; &lt;td&gt;The reporting unit&amp;#x2019;s estimated financials and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;five&lt;/div&gt;-year projections of financial results, which were based on our strategic plans and long-range forecasts. Sales growth rates represent estimates based on current and forecasted sales mix and market conditions. The profit margins were projected based on historical margins, projected sales mix, current expense structure and anticipated expense modifications.&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: top"&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 45.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&amp;#x2022;&lt;/td&gt; &lt;td&gt;The projected terminal value which reflects the total present value of projected cash flows beyond the last period in the DCF. This value reflects a growth rate for the reporting unit, which is approximately the same growth rate of expected inflation into perpetuity.&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 45.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&amp;#x2022;&lt;/td&gt; &lt;td&gt;The discount rate determined using a Weighted Average Cost of Capital method (&amp;#x201c;WACC&amp;#x201d;), which considered market and industry data as well as Company-specific risk factors. Selection of guideline public companies which are similar in size and market capitalization to each other and to the Company.&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;As of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018, &lt;/div&gt;based on our calculations under the above noted approach, the fair value of the reporting unit significantly exceeded the carrying value of the reporting unit. In performing these calculations, management used its most reasonable estimates of the key assumptions discussed above. If the Company&amp;#x2019;s actual operating results and/or the key assumptions utilized in management&amp;#x2019;s calculations differ from our expectations, it is possible that a future impairment charge &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;be necessary.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;The Company&amp;#x2019;s annual impairment testing date is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31. &lt;/div&gt;The Company performed a qualitative assessment (&amp;#x201c;step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;0&amp;#x201d;&lt;/div&gt;) as of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;and determined that it was more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; that the fair value of its reporting unit exceeded its carrying amount. As a result, the Company was &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; required to proceed to a &amp;#x201c;step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&amp;#x201d;&lt;/div&gt; impairment assessment. Factors considered included the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt; analysis and the calculated excess fair value over carrying amount, financial performance, forecasts and trends, market cap, regulatory and environmental issues, macro-economic conditions, industry and market considerations, raw material costs and management stability.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0; text-indent: 45pt"&gt;Approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$47.9&lt;/div&gt; million of goodwill is deductible for tax purposes.&lt;br /&gt; &lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0; text-indent: 45pt"&gt;&lt;br /&gt; &lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(j)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Intangible Assets&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Intangible assets with a definite life are amortized on a straight-line basis, with estimated useful lives ranging from &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;20&lt;/div&gt; years. Intangible assets with a definite life are tested for impairment whenever events or circumstances indicate that their carrying values &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; may &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be recoverable. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No&lt;/div&gt; events or changes in circumstances arose during the year ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019 &lt;/div&gt;that required management to perform an impairment analysis.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(k)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revenue Recognition&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;Beginning in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018,&lt;/div&gt; the Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;606&lt;/div&gt; which include (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1&lt;/div&gt;) identifying the contract with a customer, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt;) identifying separate performance obligations within the contract, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;3&lt;/div&gt;) determining the transaction price, (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;4&lt;/div&gt;) allocating the transaction price to the performance obligations, and (&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5&lt;/div&gt;) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery primarily upon customer acceptance, with the exception of certain tooling where control does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; transfer to the customer, resulting in revenue being recognized over the estimated time for which parts are produced with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. The Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer. In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&amp;#x2019;s promise to transfer the good and are expensed when revenue is recognized.&lt;/div&gt; &lt;div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;For the year &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; prior to ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;606,&lt;/div&gt; the Company recognized revenue at the time of shipment when title and risk of loss have passed to the customer, persuasive evidence of an arrangement exists, performance of its obligation is complete, its price to the buyer is fixed or determinable, and the Company is reasonably assured of collection. Determination of these criteria, in some cases, requires management&amp;#x2019;s judgment.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt; text-indent: -45pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 42; Value: 1 --&gt;  &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(l)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Share-Based Compensation&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;When accounting for equity instruments exchanged for employee services, share-based compensation cost is measured at the grant date, based on the calculated fair value of the award, and is recognized as an expense over the employee&amp;#x2019;s requisite service period (generally the vesting period of the equity grant). Forfeitures are expensed as they occur.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company issues share-based awards through several plans that are described in detail in Note&amp;nbsp;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12.&lt;/div&gt; The compensation cost charged against income for those plans is included in selling, general &amp;amp; administrative expenses as follows (in thousands):&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="text-align: center; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2019&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2018&lt;/td&gt; &lt;td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 55%; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Share-based compensation expense&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,591&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,212&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1,068&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The compensation expense for stock options granted during the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;three&lt;/div&gt;-year period ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2019,&lt;/div&gt; was determined as the fair value of the options using the Black Scholes valuation model. The assumptions are noted as follows:&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table style="border-collapse: collapse; margin-left: 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="11" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Years Ended December 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2019&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2018&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2017&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 54%; font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected volatility&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;28.9&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.7&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="width: 1%; font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;27.4%&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="width: 5%; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;29.1%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected dividends&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;None&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Risk-free interest rate&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.3&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;%&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.56%&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;1.84%&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Exercise price&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;38.61&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;31.20&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$27.05&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; - &lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$28.70&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Expected term (in years)&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;6.0&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2.7&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: center"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; to &lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;5.8&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&gt; &lt;td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt"&gt;Weighted-average grant date fair value&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;12.70&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10.15&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$5.59&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style=" font-size: 10pt; text-align: center; margin: 0pt 6.75pt 0pt 5.5pt"&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; -&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$8.51&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The stock volatility for each grant is determined based on a review of the experience of the weighted average of historical daily price changes of the Company&amp;#x2019;s common stock over the expected option term, and the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding with the expected term of the option. The expected term is estimated based on historical option exercise activity.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The total income tax benefit recognized in the consolidated statements of income for share-based compensation arrangements was approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$653&lt;/div&gt; thousand, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$544&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$525&lt;/div&gt; thousand for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(m)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Shipping and Handling Costs&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Costs incurred related to shipping and handling are included in cost of sales. Amounts charged to customers pertaining to these costs are included in net sales.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(n)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Income Taxes&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company&amp;#x2019;s income taxes are accounted for under the asset and liability method. Under the asset and liability method, deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax basis and operating loss and tax credit carryforwards. Deferred tax expense or benefit results from the net change during the year in deferred tax assets and liabilities. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period that includes the enactment date.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 43; Value: 1 --&gt;  &lt;div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company evaluates the need for a valuation allowance to reduce its deferred tax assets to the amount that is more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; to be realized. The Company has considered future taxable income and ongoing prudent and feasible tax planning strategies in assessing the need for a valuation allowance. Should the Company determine that it would &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; be able to realize all or part of its deferred tax assets in the future, an adjustment to the deferred tax assets would be charged to income in the period such determination was made.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company recognizes the tax benefit from an uncertain tax position only if it is more likely than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; that the tax position will be sustained on examination by the taxing authorities, based on the technical merits of the position. The tax benefits recognized in the consolidated financial statements from such positions are then measured based on the largest benefit that has a greater than &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;50%&lt;/div&gt; likelihood of being realized upon settlement. The Company recognizes interest and penalties accrued related to unrecognized tax benefits in tax expense.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(o)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Segments and Related Information&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company follows the provisions of Accounting Standards Codification (ASC) &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;280,&lt;/div&gt; &lt;div style="display: inline; font-style: italic;"&gt;Segment Reporting&lt;/div&gt;, which establish standards for the way public business enterprises report information and operating segments in annual financial statements (see Note &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;17&lt;/div&gt;).&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(p)&amp;nbsp;&amp;nbsp; Treasury Stock&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The Company accounts for treasury stock under the cost method, using the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt;-in, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;first&lt;/div&gt; out flow assumption, and we include treasury stock as a component of stockholders&amp;#x2019; equity. The Company did &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; repurchase any shares of common stock during the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017.&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;  &lt;tr style="vertical-align: top"&gt; &lt;td style="width: 27.35pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(q)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Research and Development&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;On a routine basis, the Company incurs costs related to research and development activity. These costs are expensed as incurred. Approximately &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$9.5&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$10.5&lt;/div&gt; million and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$5.0&lt;/div&gt; million were expensed in the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2019, &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Recent Accounting Pronouncements&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; February 2016, &lt;/div&gt;the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;02,&lt;/div&gt; &amp;#x201c;Leases (Accounting Standards Codification (ASC) &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt;),&amp;#x201d; and issued subsequent amendments to the initial guidance in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2018 &lt;/div&gt;within ASU &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;01&lt;/div&gt; and in &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; July 2018 &lt;/div&gt;within ASU Nos. &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;10&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2018&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;11.&lt;/div&gt; The Company adopted ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;842&lt;/div&gt; on &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2019. &lt;/div&gt;See Note &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;13&lt;/div&gt; for further details.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 2017, &lt;/div&gt;the FASB issued ASU &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;No.&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;04,&lt;/div&gt; Intangibles&amp;#x2014;Goodwill and Other (ASC &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;350&lt;/div&gt;), Simplifying the Test for Goodwill Impairment. The guidance removes Step &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2&lt;/div&gt; of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&amp;#x2019;s carrying value exceeds its fair value, &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 15, 2019. &lt;/div&gt;Early adoption is permitted for any impairment tests performed on testing dates after &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2017. &lt;/div&gt;The Company does &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; believe adoption will have a material impact on its financial condition or results of operations.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;In &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; June 2016, &lt;/div&gt;the FASB issued accounting standard that requires companies to utilize an impairment model (current expected credit loss, or CECL) for most financial assets measured at amortized cost and certain other financial instruments, which include, but are &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; limited to, trade and other receivables. This accounting standard will replace the incurred loss model under current GAAP with a model that reflects expected&amp;nbsp;credit losses&amp;nbsp;and requires consideration of a broader range of reasonable and supportable information to estimate those losses. Effective &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; January 1, 2020, &lt;/div&gt;the Company adopted this standard. The adoption of this standard is &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;not&lt;/div&gt; expected to have a material impact on our Consolidated Financial Statements.&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 44; Value: 1 --&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;&lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revisions&lt;/div&gt;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;Certain revisions have been made to the &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017&lt;/div&gt; Consolidated Statements of Income to conform to the current year presentation relating to a reclassification of material overcharge settlement to selling, general and administrative expenses. The reclassification resulted in the removal of the material overcharge settlement line item and a decrease in selling, general and administrative expenses of &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$104&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;$121&lt;/div&gt; thousand for the years ended &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt; December 31, 2018 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;2017,&lt;/div&gt; respectively. These revisions had &lt;div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"&gt;no&lt;/div&gt; impact on previously reported operating or net income and are deemed immaterial to the previously issued financial statements.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541163" unitRef="xbrli-shares">32000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541167" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c57541969" unitRef="xbrli-shares">44965</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541170" unitRef="xbrli-shares">47000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541174" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541205" unitRef="xbrli-shares">79000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541209" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541254" unitRef="xbrli-shares">45000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541258" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-02-19_2019-02-19_PlanNameAxis-The2003IncentivePlanMember_RelatedPartyTransactionsByRelatedPartyAxis-ChairmanChiefExecutiveOfficerAndPresidentMember_StatementEquityComponentsAxis-CommonStockMember" decimals="-5" id="c57541936" unitRef="iso4217-usd">400000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541164" unitRef="iso4217-usd">1000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541165" unitRef="iso4217-usd">1067000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541166" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541168" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541169" unitRef="iso4217-usd">1068000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541199" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541200" unitRef="iso4217-usd">1212000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541201" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541203" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541204" unitRef="iso4217-usd">1212000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541248" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541249" unitRef="iso4217-usd">1591000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541250" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541252" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541253" unitRef="iso4217-usd">1591000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541171" unitRef="iso4217-usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541172" unitRef="iso4217-usd">676000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541173" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541175" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541176" unitRef="iso4217-usd">677000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541206" unitRef="iso4217-usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541207" unitRef="iso4217-usd">1269000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541208" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541210" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541211" unitRef="iso4217-usd">1270000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c57541255" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541256" unitRef="iso4217-usd">705000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c57541257" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c57541259" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541260" unitRef="iso4217-usd">705000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31" decimals="-3" id="c57541096" unitRef="iso4217-usd">161991000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31" decimals="-3" id="c57541097" unitRef="iso4217-usd">140457000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2016-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541157" unitRef="iso4217-usd">72000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2016-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541158" unitRef="iso4217-usd">25216000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2016-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541159" unitRef="iso4217-usd">88352000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2016-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541161" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2016-12-31" decimals="-3" id="c57541162" unitRef="iso4217-usd">113053000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541192" unitRef="iso4217-usd">73000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541193" unitRef="iso4217-usd">26664000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541194" unitRef="iso4217-usd">97562000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541196" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2017-12-31" decimals="-3" id="c57541197" unitRef="iso4217-usd">123712000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541241" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541242" unitRef="iso4217-usd">29168000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541243" unitRef="iso4217-usd">111802000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541245" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c57541276" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c57541277" unitRef="iso4217-usd">30952000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c57541278" unitRef="iso4217-usd">131552000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c57541280" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:TaxCreditCarryforwardAmount contextRef="i_2019-12-31_TaxCreditCarryforwardAxis-OneStateJurisdictionMember" decimals="-3" id="c57541750" unitRef="iso4217-usd">348000</us-gaap:TaxCreditCarryforwardAmount>
  <us-gaap:TreasuryStockShares contextRef="i_2019-12-31" decimals="INF" id="c57541094" unitRef="xbrli-shares">29559</us-gaap:TreasuryStockShares>
  <us-gaap:TreasuryStockShares contextRef="i_2018-12-31" decimals="INF" id="c57541095" unitRef="xbrli-shares">29559</us-gaap:TreasuryStockShares>
  <us-gaap:TreasuryStockSharesAcquired contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541473" unitRef="xbrli-shares">0</us-gaap:TreasuryStockSharesAcquired>
  <us-gaap:TreasuryStockSharesAcquired contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541471" unitRef="xbrli-shares">0</us-gaap:TreasuryStockSharesAcquired>
  <us-gaap:TreasuryStockSharesAcquired contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541472" unitRef="xbrli-shares">0</us-gaap:TreasuryStockSharesAcquired>
  <us-gaap:TreasuryStockValue contextRef="i_2019-12-31" decimals="-3" id="c57541092" unitRef="iso4217-usd">587000</us-gaap:TreasuryStockValue>
  <us-gaap:TreasuryStockValue contextRef="i_2018-12-31" decimals="-3" id="c57541093" unitRef="iso4217-usd">587000</us-gaap:TreasuryStockValue>
  <us-gaap:UnrecognizedTaxBenefits contextRef="i_2019-12-31" decimals="-3" id="c57541765" unitRef="iso4217-usd">0</us-gaap:UnrecognizedTaxBenefits>
  <us-gaap:UnrecognizedTaxBenefits contextRef="i_2018-12-31" decimals="-3" id="c57541766" unitRef="iso4217-usd">150000</us-gaap:UnrecognizedTaxBenefits>
  <us-gaap:UnrecognizedTaxBenefits contextRef="i_2017-12-31" decimals="-4" id="c57541872" unitRef="iso4217-usd">150000</us-gaap:UnrecognizedTaxBenefits>
  <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="d_2019-01-01_2019-12-31" decimals="-4" id="c57541873" unitRef="iso4217-usd">150000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
  <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="d_2018-01-01_2018-12-31" id="c57541874" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities contextRef="d_2019-02-21_2019-02-21" decimals="-3" id="c57541772" unitRef="iso4217-usd">156000000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
  <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="i_2019-12-31" decimals="-3" id="c57541770" unitRef="iso4217-usd">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
  <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="i_2018-12-31" decimals="-3" id="c57541771" unitRef="iso4217-usd">153000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
  <us-gaap:UseOfEstimates contextRef="d_2019-01-01_2019-12-31" id="c57543384">&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;div style="display: inline; font-family: times new roman; font-size: 10pt"&gt;&lt;table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"&gt;&lt;tr style="vertical-align: top"&gt;&lt;td style="width: 27.35pt"&gt;&lt;/td&gt; &lt;td style="width: 18pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;(b)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-style: italic;"&gt;Use of Estimates&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"&gt;The preparation of consolidated financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, including allowance for doubtful accounts and the net realizable value of inventory, and the fair value of goodwill, and disclosure of contingent assets and liabilities at the date of the consolidated financial statements, and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
  <us-gaap:ValuationAllowancesAndReservesBalance contextRef="i_2018-12-31" decimals="-3" id="c57542222" unitRef="iso4217-usd">564000</us-gaap:ValuationAllowancesAndReservesBalance>
  <us-gaap:ValuationAllowancesAndReservesBalance contextRef="i_2017-12-31" decimals="-3" id="c57542223" unitRef="iso4217-usd">652000</us-gaap:ValuationAllowancesAndReservesBalance>
  <us-gaap:ValuationAllowancesAndReservesBalance contextRef="i_2016-12-31" decimals="-3" id="c57542224" unitRef="iso4217-usd">567000</us-gaap:ValuationAllowancesAndReservesBalance>
  <us-gaap:ValuationAllowancesAndReservesBalance contextRef="i_2019-12-31" decimals="-3" id="c57542231" unitRef="iso4217-usd">486000</us-gaap:ValuationAllowancesAndReservesBalance>
  <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542225" unitRef="iso4217-usd">-52000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
  <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57542226" unitRef="iso4217-usd">-50000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
  <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57542227" unitRef="iso4217-usd">116000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
  <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542228" unitRef="iso4217-usd">26000</us-gaap:ValuationAllowancesAndReservesDeductions>
  <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57542229" unitRef="iso4217-usd">38000</us-gaap:ValuationAllowancesAndReservesDeductions>
  <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57542230" unitRef="iso4217-usd">31000</us-gaap:ValuationAllowancesAndReservesDeductions>
  <us-gaap:VariableLeaseCost contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57542034" unitRef="iso4217-usd">219000</us-gaap:VariableLeaseCost>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541153" unitRef="xbrli-shares">7516000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541154" unitRef="xbrli-shares">7430000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541155" unitRef="xbrli-shares">7337000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2019-01-01_2019-12-31" decimals="-3" id="c57541150" unitRef="xbrli-shares">7424000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2018-01-01_2018-12-31" decimals="-3" id="c57541151" unitRef="xbrli-shares">7347000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2017-01-01_2017-12-31" decimals="-3" id="c57541152" unitRef="xbrli-shares">7248000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <link:footnoteLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended"/>
  <xbrli:unit id="xbrli-shares">
    <xbrli:measure>xbrli:shares</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="xbrli-pure">
    <xbrli:measure>xbrli:pure</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="iso4217-usd">
    <xbrli:measure>iso4217:USD</xbrli:measure>
  </xbrli:unit>
  <xbrli:unit id="iso4217-usd-per-xbrli-shares">
    <xbrli:divide>
      <xbrli:unitNumerator>
        <xbrli:measure>iso4217:USD</xbrli:measure>
      </xbrli:unitNumerator>
      <xbrli:unitDenominator>
        <xbrli:measure>xbrli:shares</xbrli:measure>
      </xbrli:unitDenominator>
    </xbrli:divide>
  </xbrli:unit>
  <xbrli:context id="d_2017-01-01_2017-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis">ufpt:ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_MajorCustomersAxis-AerospaceDefenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AerospaceDefenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_MajorCustomersAxis-AutomotiveMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AutomotiveMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_MajorCustomersAxis-ConsumerMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ConsumerMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_MajorCustomersAxis-ElectronicsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ElectronicsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_MajorCustomersAxis-IndustrialMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:IndustrialMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_MajorCustomersAxis-MedicalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:MedicalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:EngineeringAndDevelopmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_ProductOrServiceAxis-ProductMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_ProductOrServiceAxis-ToolingAndMachineryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:ToolingAndMachineryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2017-01-01_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2017-01-01</xbrli:startDate>
      <xbrli:endDate>2017-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-06-30_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis">ufpt:ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_FairValueByAssetClassAxis-DeferredRevenueMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">ufpt:DeferredRevenueMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_MajorCustomersAxis-AerospaceDefenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AerospaceDefenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_MajorCustomersAxis-AutomotiveMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AutomotiveMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_MajorCustomersAxis-ConsumerMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ConsumerMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_MajorCustomersAxis-ElectronicsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ElectronicsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_MajorCustomersAxis-IndustrialMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:IndustrialMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_MajorCustomersAxis-MedicalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:MedicalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:EngineeringAndDevelopmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_ProductOrServiceAxis-ProductMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_ProductOrServiceAxis-ToolingAndMachineryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:ToolingAndMachineryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-01-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_CreditFacilityAxis-UnsecuredRevolvingCreditFacilityMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:UnsecuredRevolvingCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MaximumMember_VariableRateAxis-PrimeRateMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_RangeAxis-MinimumMember_VariableRateAxis-PrimeRateMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:PrimeRateMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-02-01_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-02-01</xbrli:startDate>
      <xbrli:endDate>2018-02-01</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-04-01_2018-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-04-01</xbrli:startDate>
      <xbrli:endDate>2018-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-07-01_2018-09-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-07-01</xbrli:startDate>
      <xbrli:endDate>2018-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2018-10-01_2018-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2018-10-01</xbrli:startDate>
      <xbrli:endDate>2018-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:NonemployeeDirectorStockIncentivePlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:NonemployeeDirectorStockIncentivePlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:OtherNonoperatingIncomeExpenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_FairValueByAssetClassAxis-DeferredRevenueMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByAssetClassAxis">ufpt:DeferredRevenueMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_MajorCustomersAxis-AerospaceDefenseMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AerospaceDefenseMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_MajorCustomersAxis-AutomotiveMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:AutomotiveMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_MajorCustomersAxis-ConsumerMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ConsumerMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_MajorCustomersAxis-ElectronicsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:ElectronicsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_MajorCustomersAxis-IndustrialMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:IndustrialMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_MajorCustomersAxis-MedicalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ufpt:MedicalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_PlanNameAxis-The2003IncentivePlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:The2003IncentivePlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:EngineeringAndDevelopmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_ProductOrServiceAxis-ProductMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_ProductOrServiceAxis-ToolingAndMachineryMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ufpt:ToolingAndMachineryMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">ufpt:FurnitureFixturesAndComputersMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">ufpt:FurnitureFixturesAndComputersMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-01-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-19_2019-02-19_PlanNameAxis-The2003IncentivePlanMember_RelatedPartyTransactionsByRelatedPartyAxis-ChairmanChiefExecutiveOfficerAndPresidentMember_StatementEquityComponentsAxis-CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:The2003IncentivePlanMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ufpt:ChairmanChiefExecutiveOfficerAndPresidentMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-02-19</xbrli:startDate>
      <xbrli:endDate>2019-02-19</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-02-21_2019-02-21">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-02-21</xbrli:startDate>
      <xbrli:endDate>2019-02-21</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-04-01_2019-06-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-04-01</xbrli:startDate>
      <xbrli:endDate>2019-06-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-06-05_2019-06-05_PlanNameAxis-The2003IncentivePlanMember_RelatedPartyTransactionsByRelatedPartyAxis-ChairmanChiefExecutiveOfficerAndPresidentMember_StatementEquityComponentsAxis-CommonStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:The2003IncentivePlanMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionsByRelatedPartyAxis">ufpt:ChairmanChiefExecutiveOfficerAndPresidentMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-06-05</xbrli:startDate>
      <xbrli:endDate>2019-06-05</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-07-01_2019-09-30">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-07-01</xbrli:startDate>
      <xbrli:endDate>2019-09-30</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-10-01_2019-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2019-10-01</xbrli:startDate>
      <xbrli:endDate>2019-12-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2011-06-08_PlanNameAxis-The2003IncentivePlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:The2003IncentivePlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2011-06-08</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2016-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2016-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2016-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2016-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2016-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2016-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MaximumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_AwardTypeAxis-EmployeeStockOptionMember_RangeAxis-MinimumMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2017-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_BusinessAcquisitionAxis-DielectricsMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ufpt:DielectricsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ufpt:TradeNameAndBrandMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_CreditFacilityAxis-UnsecuredRevolvingCreditFacilityMember_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">ufpt:UnsecuredRevolvingCreditFacilityMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_LongtermDebtTypeAxis-UnsecuredTermLoanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">ufpt:UnsecuredTermLoanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-02-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_AwardTypeAxis-EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_DebtInstrumentAxis-TermLoanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:TermLoanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ufpt:TradeNameAndBrandMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">ufpt:FurnitureFixturesAndComputersMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-LandAndLandImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandAndLandImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2018-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-01">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-01-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-06-28">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-06-28</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ufpt:EmployeeAndNonemployeeStockOptionMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:NonemployeeDirectorStockIncentivePlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_AwardTypeAxis-EmployeeStockOptionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherCurrentLiabilitiesMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:AmendedAndRestatedCreditAgreementMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">ufpt:SubsidiaryGuarantorsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_DebtInstrumentAxis-TermLoanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">ufpt:TermLoanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:InterestRateSwapMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerListsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ufpt:TradeNameAndBrandMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PlanNameAxis-NonemployeeDirectorStockIncentivePlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:NonemployeeDirectorStockIncentivePlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PlanNameAxis-The2003IncentivePlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ufpt:The2003IncentivePlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingAndBuildingImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingAndBuildingImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-FurnitureFixturesAndComputersMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">ufpt:FurnitureFixturesAndComputersMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LandAndLandImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandAndLandImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LeaseholdImprovementsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">ufpt:CommonStockOutstandingMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-12-31_TaxCreditCarryforwardAxis-OneStateJurisdictionMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">ufpt:OneStateJurisdictionMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-05">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-05</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
</xbrli:xbrl>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>8
<FILENAME>ufpt-20191231.xsd
<DESCRIPTION>XBRL SCHEMA FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 12:32AM UTC 2020-03-13--><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:country="http://xbrl.sec.gov/country/2017-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2017-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2018-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:sic="http://xbrl.sec.gov/sic/2011-01-31" xmlns:srt="http://fasb.org/srt/2019-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:ufpt="http://www.ufpt.com/20191231" xmlns:us-gaap="http://fasb.org/us-gaap/2019-01-31" xmlns:us-types="http://fasb.org/us-types/2019-01-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.ufpt.com/20191231">
  <xsd:import namespace="http://xbrl.sec.gov/country/2017-01-31" schemaLocation="https://xbrl.sec.gov/country/2017/country-2017-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/naics/2011-01-31" schemaLocation="http://xbrl.sec.gov/naics/2011/naics-2011-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/stpr/2018-01-31" schemaLocation="https://xbrl.sec.gov/stpr/2018/stpr-2018-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/sic/2011-01-31" schemaLocation="http://xbrl.sec.gov/sic/2011/sic-2011-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/exch/2018-01-31" schemaLocation="https://xbrl.sec.gov/exch/2018/exch-2018-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/currency/2017-01-31" schemaLocation="http://xbrl.sec.gov/currency/2017/currency-2017-01-31.xsd"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20191231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20191231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20191231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20191231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="statement-document-and-entity-information" roleURI="http://www.ufpt.com/20191231/role/statement-document-and-entity-information">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">000 - Document - Document And Entity Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-balance-sheets" roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">001 - Statement - Consolidated Balance Sheets</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-balance-sheets-parentheticals" roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">002 - Statement - Consolidated Balance Sheets (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-income" roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">003 - Statement - Consolidated Statements of Income</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-stockholders-equity" roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-stockholders-equity">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">004 - Statement - Consolidated Statements of Stockholders' Equity</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-cash-flows" roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">005 - Statement - Consolidated Statements of Cash Flows</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-summary-of-significant-accounting-policies" roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">006 - Disclosure - Note 1 - Summary of Significant Accounting Policies</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition" roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">007 - Disclosure - Note 2 - Revenue Recognition</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-supplemental-cash-flow-information-" roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">008 - Disclosure - Note 3 - Supplemental Cash Flow Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-receivables" roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">009 - Disclosure - Note 4 - Receivables</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-inventories-" roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">010 - Disclosure - Note 5 - Inventories</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-intangible-assets-" roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">011 - Disclosure - Note 6 - Other Intangible Assets</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-property-plant-and-equipment" roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">012 - Disclosure - Note 7 - Property, Plant and Equipment</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-indebtedness" roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">013 - Disclosure - Note 8 - Indebtedness</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-accrued-expenses" roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">014 - Disclosure - Note 9 - Accrued Expenses</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-income-tax" roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">015 - Disclosure - Note 10 - Income Tax</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-net-income-per-share" roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">016 - Disclosure - Note 11 - Net Income Per Share</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-stock-option-and-equity-incentive-plans" roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">017 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases" roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">018 - Disclosure - Note 13 - Leases</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-14-commitments-and-contingencies" roleURI="http://www.ufpt.com/20191231/role/statement-note-14-commitments-and-contingencies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">019 - Disclosure - Note 14 - Commitments and Contingencies</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-employee-benefit-plans" roleURI="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">020 - Disclosure - Note 15 - Employee Benefit Plans</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-fair-value-of-financial-instruments-" roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">021 - Disclosure - Note 16 - Fair Value of Financial Instruments</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-segment-data" roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">022 - Disclosure - Note 17 - Segment Data</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-quarterly-financial-information-unaudited" roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">023 - Disclosure - Note 18 - Quarterly Financial Information (Unaudited)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-acquisition" roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">024 - Disclosure - Note 19 - Acquisition</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-schedule-ii-valuation-and-qualifying-accounts" roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">025 - Disclosure - Schedule II - Valuation and Qualifying Accounts</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-significant-accounting-policies-policies" roleURI="http://www.ufpt.com/20191231/role/statement-significant-accounting-policies-policies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">026 - Disclosure - Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-summary-of-significant-accounting-policies-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">027 - Disclosure - Note 1 - Summary of Significant Accounting Policies (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">028 - Disclosure - Note 2 - Revenue Recognition (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-supplemental-cash-flow-information-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">029 - Disclosure - Note 3 - Supplemental Cash Flow Information (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-receivables-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">030 - Disclosure - Note 4 - Receivables (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-inventories-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">031 - Disclosure - Note 5 - Inventories (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-intangible-assets-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">032 - Disclosure - Note 6 - Other Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-property-plant-and-equipment-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">033 - Disclosure - Note 7 - Property, Plant and Equipment (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-indebtedness-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">034 - Disclosure - Note 8 - Indebtedness (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-accrued-expenses-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">035 - Disclosure - Note 9 - Accrued Expenses (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-income-tax-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">036 - Disclosure - Note 10 - Income Tax (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-net-income-per-share-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">037 - Disclosure - Note 11 - Net Income Per Share (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-stock-option-and-equity-incentive-plans-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">038 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">039 - Disclosure - Note 13 - Leases (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-fair-value-of-financial-instruments-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">040 - Disclosure - Note 16 - Fair Value of Financial Instruments (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-segment-data-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">041 - Disclosure - Note 17 - Segment Data (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-quarterly-financial-information-unaudited-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">042 - Disclosure - Note 18 - Quarterly Financial Information (Unaudited) (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-acquisition-tables" roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">043 - Disclosure - Note 19 - Acquisition (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-schedule-ii-valuation-and-qualifying-accounts-tables" roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">044 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-summary-of-significant-accounting-policies-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">045 - Disclosure - Note 1 - Summary of Significant Accounting Policies (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">046 - Disclosure - Note 1 - Summary of Significant Accounting Policies - Estimated Useful Lives of Property, Plant, and Equipment (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">047 - Disclosure - Note 1 - Summary of Significant Accounting Policies - Compensation Cost Charged Against Income (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">048 - Disclosure - Note 1 - Summary of Significant Accounting Policies - Fair Value Assumptions (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">049 - Disclosure - Note 2 - Revenue Recognition (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">050 - Disclosure - Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">051 - Disclosure - Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-supplemental-cash-flow-information-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">052 - Disclosure - Note 3 - Supplemental Cash Flow Information (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">053 - Disclosure - Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-receivables-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">054 - Disclosure - Note 4 - Receivables (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-receivables-receivables-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">055 - Disclosure - Note 4 - Receivables - Receivables (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-inventories-summary-of-inventory-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">056 - Disclosure - Note 5 - Inventories - Summary of Inventory (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-intangible-assets-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">057 - Disclosure - Note 6 - Other Intangible Assets (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">058 - Disclosure - Note 6 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">059 - Disclosure - Note 6 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-property-plant-and-equipment-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">060 - Disclosure - Note 7 - Property, Plant and Equipment (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">061 - Disclosure - Note 7 - Property, Plant and Equipment - Property, Plant, and Equipment (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-indebtedness-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">062 - Disclosure - Note 8 - Indebtedness (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-indebtedness-longterm-debt-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-longterm-debt-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">063 - Disclosure - Note 8 - Indebtedness - Long-term Debt (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-accrued-expenses-accrued-expenses-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">064 - Disclosure - Note 9 - Accrued Expenses - Accrued Expenses (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-income-tax-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">065 - Disclosure - Note 10 - Income Tax (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-income-tax-income-tax-provision-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">066 - Disclosure - Note 10 - Income Tax - Income Tax Provision (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">067 - Disclosure - Note 10 - Income Tax - Deferred Tax Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-income-tax-income-tax-rate-reconciliation-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">068 - Disclosure - Note 10 - Income Tax - Income Tax Rate Reconciliation (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-income-tax-unrecognized-tax-benefits-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-unrecognized-tax-benefits-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">069 - Disclosure - Note 10 - Income Tax - Unrecognized Tax Benefits (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-net-income-per-share-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">070 - Disclosure - Note 11 - Net Income Per Share (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">071 - Disclosure - Note 11 - Net Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-stock-option-and-equity-incentive-plans-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">072 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">073 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Compensation Cost (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">074 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Summary of Stock Option Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">075 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Restricted Stock Unit Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">076 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Future Share-based Compensation Expense (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">077 - Disclosure - Note 13 - Leases (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-lease-cost-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-lease-cost-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">078 - Disclosure - Note 13 - Leases - Lease Cost (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-aggregate-future-lease-payments-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">079 - Disclosure - Note 13 - Leases - Aggregate Future Lease Payments (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">080 - Disclosure - Note 13 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-employee-benefit-plans-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">081 - Disclosure - Note 15 - Employee Benefit Plans (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">082 - Disclosure - Note 16 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-segment-data-net-sales-by-market-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-net-sales-by-market-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">083 - Disclosure - Note 17 - Segment Data - Net Sales by Market (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">084 - Disclosure - Note 18 - Quarterly Financial Information (Unaudited) - Summarized Quarterly Financial Data (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-acquisition-details-textual" roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">085 - Disclosure - Note 19 - Acquisition (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">086 - Disclosure - Note 19 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-19-acquisition-pro-forma-information-unaudited-details" roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-pro-forma-information-unaudited-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">087 - Disclosure - Note 19 - Acquisition - Pro Forma Information (Unaudited) (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-schedule-ii-valuation-and-qualifying-accounts-details" roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">088 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element abstract="true" id="ufpt_AerospaceDefenseMember" name="AerospaceDefenseMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" name="AggregateDeferredTaxLiabilitiesNoncurrent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="ufpt_AmendedAndRestatedCreditAgreementMember" name="AmendedAndRestatedCreditAgreementMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_AutomotiveMember" name="AutomotiveMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" name="BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_CashlessExerciseOfStockOptions" name="CashlessExerciseOfStockOptions" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" name="ChairmanChiefExecutiveOfficerAndPresidentMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_CommonStockOutstandingMember" name="CommonStockOutstandingMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ConsumerMember" name="ConsumerMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" name="ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" name="ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" name="CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_DeferredRevenueMember" name="DeferredRevenueMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_DeferredTaxAssetsLeaseLiability" name="DeferredTaxAssetsLeaseLiability" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" name="DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_DeferredTaxLiabilitiesRightOfUseAsset" name="DeferredTaxLiabilitiesRightOfUseAsset" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="ufpt_DielectricsMember" name="DielectricsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_DocumentAndEntityInformation" name="DocumentAndEntityInformation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" name="EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" name="EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ElectronicsMember" name="ElectronicsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_EmployeeAndNonemployeeStockOptionMember" name="EmployeeAndNonemployeeStockOptionMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" name="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" name="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" name="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" name="EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="ufpt_EngineeringAndDevelopmentMember" name="EngineeringAndDevelopmentMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_FurnitureFixturesAndComputersMember" name="FurnitureFixturesAndComputersMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_IndustrialMember" name="IndustrialMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_MedicalMember" name="MedicalMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_NonemployeeDirectorStockIncentivePlanMember" name="NonemployeeDirectorStockIncentivePlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_NoteToFinancialStatementDetailsTextual" name="NoteToFinancialStatementDetailsTextual" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_NotesToFinancialStatements" name="NotesToFinancialStatements" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_NotesToFinancialStatementsAbstract" name="NotesToFinancialStatementsAbstract" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_NumberOfLeaseTermOptions" name="NumberOfLeaseTermOptions" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="ufpt_OneStateJurisdictionMember" name="OneStateJurisdictionMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ProceedsFromStockOptionsExercisedNet" name="ProceedsFromStockOptionsExercisedNet" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" name="PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" name="ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" name="RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" name="ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" name="ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" name="SelfIinsuredHealthInsuranceProgramStopLossAmount" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" name="SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" name="SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" name="SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_ShippingAndHandlingCostsPolicyTextBlock" name="ShippingAndHandlingCostsPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" name="StockholdersEquityTreasuryStockPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_SubsidiaryGuarantorsMember" name="SubsidiaryGuarantorsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" name="SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_TermLoanMember" name="TermLoanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_The2003IncentivePlanMember" name="The2003IncentivePlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_ToolingAndMachineryMember" name="ToolingAndMachineryMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_TradeNameAndBrandMember" name="TradeNameAndBrandMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_UnsecuredRevolvingCreditFacilityMember" name="UnsecuredRevolvingCreditFacilityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_UnsecuredTermLoanMember" name="UnsecuredTermLoanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" name="statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" name="statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" name="statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables" name="statement-statement-note-1-summary-of-significant-accounting-policies-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" name="statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-income-tax-income-tax-provision-details" name="statement-statement-note-10-income-tax-income-tax-provision-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" name="statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-income-tax-tables" name="statement-statement-note-10-income-tax-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" name="statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-11-net-income-per-share-tables" name="statement-statement-note-11-net-income-per-share-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" name="statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" name="statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" name="statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" name="statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" name="statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" name="statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details" name="statement-statement-note-13-leases-aggregate-future-lease-payments-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" name="statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-13-leases-lease-cost-details" name="statement-statement-note-13-leases-lease-cost-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-13-leases-tables" name="statement-statement-note-13-leases-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" name="statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables" name="statement-statement-note-16-fair-value-of-financial-instruments-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details" name="statement-statement-note-17-segment-data-net-sales-by-market-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-17-segment-data-tables" name="statement-statement-note-17-segment-data-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" name="statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables" name="statement-statement-note-18-quarterly-financial-information-unaudited-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" name="statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" name="statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-19-acquisition-tables" name="statement-statement-note-19-acquisition-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" name="statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" name="statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-2-revenue-recognition-tables" name="statement-statement-note-2-revenue-recognition-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" name="statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" name="statement-statement-note-3-supplemental-cash-flow-information-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-4-receivables-receivables-details" name="statement-statement-note-4-receivables-receivables-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-4-receivables-tables" name="statement-statement-note-4-receivables-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-inventories-summary-of-inventory-details" name="statement-statement-note-5-inventories-summary-of-inventory-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-inventories-tables" name="statement-statement-note-5-inventories-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" name="statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" name="statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-6-other-intangible-assets-tables" name="statement-statement-note-6-other-intangible-assets-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" name="statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-7-property-plant-and-equipment-tables" name="statement-statement-note-7-property-plant-and-equipment-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-8-indebtedness-longterm-debt-details" name="statement-statement-note-8-indebtedness-longterm-debt-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-8-indebtedness-tables" name="statement-statement-note-8-indebtedness-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details" name="statement-statement-note-9-accrued-expenses-accrued-expenses-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-9-accrued-expenses-tables" name="statement-statement-note-9-accrued-expenses-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" name="statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" name="statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-significant-accounting-policies-policies" name="statement-statement-significant-accounting-policies-policies" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>9
<FILENAME>ufpt-20191231_cal.xml
<DESCRIPTION>XBRL CALCULATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 12:32AM UTC 2020-03-13--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_CashAcquiredFromAcquisition" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_GainLossOnDispositionOfAssets" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:calculationArc order="8" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="arc"/>
    <link:calculationArc order="9" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="arc"/>
    <link:calculationArc order="10" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="arc"/>
    <link:calculationArc order="11" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:calculationArc order="12" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="arc"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLongTermDebt" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-income" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_InvestmentIncomeInterest" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables-receivables-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ReceivablesNetCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ReceivablesNetCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details" xlink:href="ufpt-20191231.xsd#statement-note-5-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details" xlink:href="ufpt-20191231.xsd#statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedSalariesCurrent" xlink:label="us-gaap_AccruedSalariesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedVacationCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_SelfInsuranceReserveCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedSalariesCurrent" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="arc"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:type="arc"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="arc"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="arc"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets" xlink:href="ufpt-20191231.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_IncomeTaxesReceivable" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_DeferredCompensationPlanAssets" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_TreasuryStockValue" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapital" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-income-tax-provision-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:label="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsLeaseLiability" xlink:label="ufpt_DeferredTaxAssetsLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:label="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:label="ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsInventory" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="arc"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="ufpt_DeferredTaxAssetsLeaseLiability" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:to="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>ufpt-20191231_def.xml
<DESCRIPTION>XBRL DEFINITION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 12:32AM UTC 2020-03-13--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:href="ufpt-20191231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited" xlink:href="ufpt-20191231.xsd#statement-note-18-quarterly-financial-information-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data" xlink:href="ufpt-20191231.xsd#statement-note-17-segment-data" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-17-segment-data" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-" xlink:href="ufpt-20191231.xsd#statement-note-16-fair-value-of-financial-instruments-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-14-commitments-and-contingencies" xlink:href="ufpt-20191231.xsd#statement-note-14-commitments-and-contingencies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-14-commitments-and-contingencies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses" xlink:href="ufpt-20191231.xsd#statement-note-9-accrued-expenses" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-" xlink:href="ufpt-20191231.xsd#statement-note-5-inventories-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-5-inventories-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-document-and-entity-information" xlink:href="ufpt-20191231.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityVoluntaryFilers" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityWellKnownSeasonedIssuer" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityInteractiveDataCurrent" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityPublicFloat" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:definitionArc order="19" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
    <link:definitionArc order="20" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets-parentheticals" xlink:href="ufpt-20191231.xsd#statement-consolidated-balance-sheets-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TreasuryStockShares" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:label="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:to="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="us-gaap_LongtermDebtTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LongtermDebtTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LongtermDebtTypeDomain" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="us-gaap_LongtermDebtTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_OneStateJurisdictionMember" xlink:label="ufpt_OneStateJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="ufpt_OneStateJurisdictionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:label="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases" xlink:href="ufpt-20191231.xsd#statement-note-13-leases" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans" xlink:href="ufpt-20191231.xsd#statement-note-15-employee-benefit-plans" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-significant-accounting-policies-policies" xlink:href="ufpt-20191231.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:label="ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:label="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryCashFlowPolicy" xlink:label="us-gaap_InventoryCashFlowPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:label="us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryCashFlowPolicy" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-tables" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:label="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-tables" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-tables" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-tables" xlink:href="ufpt-20191231.xsd#statement-note-5-inventories-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-5-inventories-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-tables" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-tables" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-tables" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-tables" xlink:href="ufpt-20191231.xsd#statement-note-9-accrued-expenses-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-tables" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-tables" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:label="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-tables" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-tables" xlink:href="ufpt-20191231.xsd#statement-note-16-fair-value-of-financial-instruments-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-tables" xlink:href="ufpt-20191231.xsd#statement-note-17-segment-data-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-tables" xlink:href="ufpt-20191231.xsd#statement-note-18-quarterly-financial-information-unaudited-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-tables" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:href="ufpt-20191231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:label="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:label="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashUninsuredAmount" xlink:label="us-gaap_CashUninsuredAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:to="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashUninsuredAmount" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TreasuryStockSharesAcquired" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CashlessExerciseOfStockOptions" xlink:label="ufpt_CashlessExerciseOfStockOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_CashlessExerciseOfStockOptions" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DepreciationAndAmortization" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeNet" xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFixedInterestRate" xlink:label="us-gaap_DerivativeFixedInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="us-gaap_DerivativeGainLossOnDerivativeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeNotionalAmount" xlink:label="us-gaap_DerivativeNotionalAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeTermOfContract" xlink:label="us-gaap_DerivativeTermOfContract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="us-gaap_LongtermDebtTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LongtermDebtTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LongtermDebtTypeDomain" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="us-gaap_LongtermDebtTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentFaceAmount" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeNotionalAmount" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeTermOfContract" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFixedInterestRate" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeGainLossOnDerivativeNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_OneStateJurisdictionMember" xlink:label="ufpt_OneStateJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OpenTaxYear" xlink:label="us-gaap_OpenTaxYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAmount" xlink:label="us-gaap_TaxCreditCarryforwardAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="ufpt_OneStateJurisdictionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TaxCreditCarryforwardAmount" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OpenTaxYear" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:label="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" xlink:label="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseAndRentalExpense" xlink:label="us-gaap_LeaseAndRentalExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseAndRentalExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-15-employee-benefit-plans-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" xlink:label="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent" xlink:label="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="us-gaap_DefinedContributionPlanCostRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedContributionPlanCostRecognized" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NumberOfLeaseTermOptions" xlink:label="ufpt_NumberOfLeaseTermOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_NumberOfLeaseTermOptions" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_FurnitureFixturesAndComputersMember" xlink:label="ufpt_FurnitureFixturesAndComputersMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="ufpt_FurnitureFixturesAndComputersMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:href="ufpt-20191231.xsd#statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:href="ufpt-20191231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_GainLossOnDispositionOfAssets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-income" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InvestmentIncomeInterest" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables-receivables-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableGrossCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ReceivablesNetCurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details" xlink:href="ufpt-20191231.xsd#statement-note-5-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_FurnitureFixturesAndComputersMember" xlink:label="ufpt_FurnitureFixturesAndComputersMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LandAndLandImprovementsMember" xlink:label="us-gaap_LandAndLandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LandAndLandImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LeaseholdImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="ufpt_FurnitureFixturesAndComputersMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ConstructionInProgressMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-longterm-debt-details" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness-longterm-debt-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-longterm-debt-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TermLoanMember" xlink:label="ufpt_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="ufpt_TermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details" xlink:href="ufpt-20191231.xsd#statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedSalariesCurrent" xlink:label="us-gaap_AccruedSalariesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedSalariesCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SelfInsuranceReserveCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedVacationCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:href="ufpt-20191231.xsd#statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel2Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeAssets" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-net-sales-by-market-details" xlink:href="ufpt-20191231.xsd#statement-note-17-segment-data-net-sales-by-market-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-net-sales-by-market-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_MajorCustomersAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_MedicalMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_AutomotiveMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_ConsumerMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_AerospaceDefenseMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_IndustrialMember" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ufpt_ElectronicsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets" xlink:href="ufpt-20191231.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IncomeTaxesReceivable" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_DeferredCompensationPlanAssets" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Assets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapital" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_TreasuryStockValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-lease-cost-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-lease-cost-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-lease-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCostAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_VariableLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_LeaseCost" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeasePayments" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="us-gaap_ProductMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ufpt_ToolingAndMachineryMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ufpt_EngineeringAndDevelopmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-income-tax-provision-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:label="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsLeaseLiability" xlink:label="ufpt_DeferredTaxAssetsLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:label="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:label="ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsInventory" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_DeferredTaxAssetsLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsNet" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-stockholders-equity" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-stockholders-equity" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-stockholders-equity" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="ufpt_CommonStockOutstandingMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_TreasuryStockMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="arc"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>11
<FILENAME>ufpt-20191231_lab.xml
<DESCRIPTION>XBRL LABEL FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 12:32AM UTC 2020-03-13--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" xlink:type="simple"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DocumentAndEntityInformation" xlink:label="ufpt_DocumentAndEntityInformation" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DocumentAndEntityInformation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document And Entity Information</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DocumentAndEntityInformation" xlink:to="ufpt_DocumentAndEntityInformation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeNotionalAmount" xlink:label="us-gaap_DerivativeNotionalAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeNotionalAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeNotionalAmount</link:label>
    <link:label xlink:label="us-gaap_DerivativeNotionalAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Notional Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeNotionalAmount" xlink:to="us-gaap_DerivativeNotionalAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="us-gaap_DerivativeGainLossOnDerivativeNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeGainLossOnDerivativeNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeGainLossOnDerivativeNet</link:label>
    <link:label xlink:label="us-gaap_DerivativeGainLossOnDerivativeNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Gain (Loss) on Derivative, Net, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeGainLossOnDerivativeNet" xlink:to="us-gaap_DerivativeGainLossOnDerivativeNet-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NoteToFinancialStatementDetailsTextual-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note To Financial Statement Details Textual</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="ufpt_NoteToFinancialStatementDetailsTextual-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-significant-accounting-policies-policies" xlink:label="ufpt_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-significant-accounting-policies-policies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-significant-accounting-policies-policies" xlink:to="ufpt_statement-statement-significant-accounting-policies-policies-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 1 - Summary of Significant Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables" xlink:to="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-2-revenue-recognition-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Revenue Recognition</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:to="ufpt_statement-statement-note-2-revenue-recognition-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Risk-free interest rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Supplemental Cash Flow Information</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:to="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-4-receivables-tables" xlink:label="ufpt_statement-statement-note-4-receivables-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-4-receivables-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Receivables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-4-receivables-tables" xlink:to="ufpt_statement-statement-note-4-receivables-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-5-inventories-tables" xlink:label="ufpt_statement-statement-note-5-inventories-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-inventories-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-5-inventories-tables" xlink:to="ufpt_statement-statement-note-5-inventories-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected dividends</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-6-other-intangible-assets-tables" xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Other Intangible Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-6-other-intangible-assets-tables" xlink:to="ufpt_statement-statement-note-6-other-intangible-assets-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-7-property-plant-and-equipment-tables" xlink:label="ufpt_statement-statement-note-7-property-plant-and-equipment-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-property-plant-and-equipment-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Property, Plant and Equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-7-property-plant-and-equipment-tables" xlink:to="ufpt_statement-statement-note-7-property-plant-and-equipment-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-8-indebtedness-tables" xlink:label="ufpt_statement-statement-note-8-indebtedness-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-8-indebtedness-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Indebtedness</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-8-indebtedness-tables" xlink:to="ufpt_statement-statement-note-8-indebtedness-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-9-accrued-expenses-tables" xlink:label="ufpt_statement-statement-note-9-accrued-expenses-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-9-accrued-expenses-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Accrued Expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-9-accrued-expenses-tables" xlink:to="ufpt_statement-statement-note-9-accrued-expenses-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other current assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-tables" xlink:label="ufpt_statement-statement-note-10-income-tax-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-income-tax-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Income Tax</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-income-tax-tables" xlink:to="ufpt_statement-statement-note-10-income-tax-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-11-net-income-per-share-tables" xlink:label="ufpt_statement-statement-note-11-net-income-per-share-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-11-net-income-per-share-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 11 - Net Income Per Share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-11-net-income-per-share-tables" xlink:to="ufpt_statement-statement-note-11-net-income-per-share-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SelfInsuranceReserveCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Benefits / self-insurance reserve</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SelfInsuranceReserveCurrent" xlink:to="us-gaap_SelfInsuranceReserveCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 12 - Stock Option and Equity Incentive Plans</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:to="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected volatility</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-tables" xlink:label="ufpt_statement-statement-note-13-leases-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-13-leases-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-13-leases-tables" xlink:to="ufpt_statement-statement-note-13-leases-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesCurrent</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables" xlink:label="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Fair Value of Financial Instruments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables" xlink:to="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-17-segment-data-tables" xlink:label="ufpt_statement-statement-note-17-segment-data-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-17-segment-data-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Segment Data</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-17-segment-data-tables" xlink:to="ufpt_statement-statement-note-17-segment-data-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables" xlink:label="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Quarterly Financial Information (Unaudited)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables" xlink:to="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-19-acquisition-tables" xlink:label="ufpt_statement-statement-note-19-acquisition-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-19-acquisition-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 19 - Acquisition</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-19-acquisition-tables" xlink:to="ufpt_statement-statement-note-19-acquisition-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expected term (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:label="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule II - Valuation and Qualifying Accounts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:to="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 1 - Summary of Significant Accounting Policies - Estimated Useful Lives of Property, Plant, and Equipment (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:to="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationConsiderationTransferred1</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total consideration</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 1 - Summary of Significant Accounting Policies - Compensation Cost Charged Against Income (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:to="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 1 - Summary of Significant Accounting Policies - Fair Value Assumptions (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:to="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:to="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:to="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:to="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-4-receivables-receivables-details" xlink:label="ufpt_statement-statement-note-4-receivables-receivables-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-4-receivables-receivables-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Receivables - Receivables (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-4-receivables-receivables-details" xlink:to="ufpt_statement-statement-note-4-receivables-receivables-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-5-inventories-summary-of-inventory-details" xlink:label="ufpt_statement-statement-note-5-inventories-summary-of-inventory-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-inventories-summary-of-inventory-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Inventories - Summary of Inventory (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-5-inventories-summary-of-inventory-details" xlink:to="ufpt_statement-statement-note-5-inventories-summary-of-inventory-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:to="ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:to="ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:label="ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Property, Plant and Equipment - Property, Plant, and Equipment (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:to="ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awarded, weighted average award date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-8-indebtedness-longterm-debt-details" xlink:label="ufpt_statement-statement-note-8-indebtedness-longterm-debt-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-8-indebtedness-longterm-debt-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Indebtedness - Long-term Debt (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-8-indebtedness-longterm-debt-details" xlink:to="ufpt_statement-statement-note-8-indebtedness-longterm-debt-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Percentage of Voting Interests Acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shares vested, weighted average award date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details" xlink:label="ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Accrued Expenses - Accrued Expenses (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details" xlink:to="ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forfeitures, weighted average award date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-income-tax-provision-details" xlink:label="ufpt_statement-statement-note-10-income-tax-income-tax-provision-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-income-tax-income-tax-provision-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Income Tax - Income Tax Provision (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-income-tax-income-tax-provision-details" xlink:to="ufpt_statement-statement-note-10-income-tax-income-tax-provision-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average award date fair value (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average award date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:label="ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Income Tax - Deferred Tax Assets and Liabilities (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:to="ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Forfeitures (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:label="ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Income Tax - Income Tax Rate Reconciliation (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:to="ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:label="ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Income Tax - Unrecognized Tax Benefits (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:to="ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, restricted stock units (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, restricted stock units (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:label="ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 11 - Net Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:to="ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeTermOfContract" xlink:label="us-gaap_DerivativeTermOfContract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeTermOfContract</link:label>
    <link:label xlink:label="us-gaap_DerivativeTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Term of Contract</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeTermOfContract" xlink:to="us-gaap_DerivativeTermOfContract-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 12 - Stock Option and Equity Incentive Plans - Compensation Cost (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:to="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 12 - Stock Option and Equity Incentive Plans - Summary of Stock Option Activity (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:to="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 12 - Stock Option and Equity Incentive Plans - Restricted Stock Unit Activity (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:to="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awarded, restricted stock units (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 12 - Stock Option and Equity Incentive Plans - Future Share-based Compensation Expense (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:to="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Shares vested, restricted stock units (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-lease-cost-details" xlink:label="ufpt_statement-statement-note-13-leases-lease-cost-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-13-leases-lease-cost-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Leases - Lease Cost (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-13-leases-lease-cost-details" xlink:to="ufpt_statement-statement-note-13-leases-lease-cost-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details" xlink:label="ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Leases - Aggregate Future Lease Payments (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details" xlink:to="ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, weighted average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:label="ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:to="ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current installments of long-term debt</link:label>
    <link:label xlink:label="us-gaap_LongTermDebtCurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Current portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtCurrent" xlink:to="us-gaap_LongTermDebtCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:label="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:to="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details" xlink:label="ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Segment Data - Net Sales by Market (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details" xlink:to="ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:label="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 18 - Quarterly Financial Information (Unaudited) - Summarized Quarterly Financial Data (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:to="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:label="ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 19 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:to="ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:label="ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 19 - Acquisition - Pro Forma Information (Unaudited) (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:to="ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:label="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule II - Valuation and Qualifying Accounts (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:to="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vested and expected to vest, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:to="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatements" xlink:label="ufpt_NotesToFinancialStatements" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NotesToFinancialStatements-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NotesToFinancialStatements" xlink:to="ufpt_NotesToFinancialStatements-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, weighted average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NotesToFinancialStatementsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="ufpt_NotesToFinancialStatementsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercisable, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Goodwill, Expected Tax Deductible Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:to="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Pro Forma Information [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaRevenue</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average remaining contractual life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding, aggregate intrinsic value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted-average grant date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average exercise price (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised, weighted average exercise price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label xlink:label="us-gaap_AccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeasesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsPayableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Outstanding, shares under options (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Outstanding, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevolvingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revolving Credit Facility [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevolvingCreditFacilityMember" xlink:to="us-gaap_RevolvingCreditFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loans, Notes, Trade and Other Receivables Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Capital additions accrued but not yet paid</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from sale of property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherAccruedLiabilitiesCurrent</link:label>
    <link:label xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedSalariesCurrent" xlink:label="us-gaap_AccruedSalariesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedSalariesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedSalariesCurrent" xlink:to="us-gaap_AccruedSalariesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PolicyTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_PolicyTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedVacationCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Paid time off</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedVacationCurrent" xlink:to="us-gaap_AccruedVacationCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Shares Issued in Period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Additions to property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted average common equivalent shares due to stock options and restricted stock units (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Additional Shares Authorized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-cash investing and financing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted average common shares outstanding:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncompeteAgreementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncompete Agreements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncompeteAgreementsMember" xlink:to="us-gaap_NoncompeteAgreementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxesPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income taxes, net of refunds</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProductMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductMember" xlink:to="us-gaap_ProductMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Assets</link:label>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid for:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PlanNameAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PlanNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameDomain" xlink:to="us-gaap_PlanNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation and Employee Benefit Plans [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:to="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic</link:label>
    <link:label xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CustomerListsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Lists [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerListsMember" xlink:to="us-gaap_CustomerListsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Expense, Tax Benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Net share settlement of restricted stock units and stock option tax withholding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerAssetNet</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Unbilled Receivables - beginning of period</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNet-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Unbilled Receivables - end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNet" xlink:to="us-gaap_ContractWithCustomerAssetNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments for Error Corrections [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments for Error Correction [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AwardTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income from consolidated operations</link:label>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accumulated amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsNet</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IntangibleAssetsNetExcludingGoodwill</link:label>
    <link:label xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net balance</link:label>
    <link:label xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeStockOptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Option [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less accumulated depreciation and amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PropertyPlantAndEquipmentNet</link:label>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, plant, and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongtermDebtTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term Debt, Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="us-gaap_LongtermDebtTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongtermDebtTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term Debt, Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongtermDebtTypeDomain" xlink:to="us-gaap_LongtermDebtTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from the exercise of stock options, net of shares presented for exercise</link:label>
    <link:label xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The cash inflow associated with the amount received from holders exercising their stock options, net of attestation.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_The2003IncentivePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">The 2003 Incentive Plan [Member]</link:label>
    <link:label xlink:label="ufpt_The2003IncentivePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the reporting entity's "2003 Incentive Plan."</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_The2003IncentivePlanMember" xlink:to="ufpt_The2003IncentivePlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation</link:label>
    <link:label xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares Paid for Exercise Price and Tax Withholding for Share Based Compensation</link:label>
    <link:label xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of shares the employees use to repay the employer for the exercise price and income tax withholding obligations.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" xlink:to="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice</link:label>
    <link:label xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares Paid for Tax Withholding for Share Based Compensation Market Price</link:label>
    <link:label xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">For net-share settlement of share-based awards when the employer settles employees' income tax withholding obligations, this element represents the market price per share of shares used by the employees to repay the employer.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:to="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative financial instruments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeAssets" xlink:to="us-gaap_DerivativeAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee and Nonemployee Stock Option [Member]</link:label>
    <link:label xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract that gives the holder the right, but not the obligation, either to purchase or to sell a certain number of shares of stock at a predetermined price for a specified period of time.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_MedicalMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Medical [Member]</link:label>
    <link:label xlink:label="ufpt_MedicalMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Medical group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_MedicalMember" xlink:to="ufpt_MedicalMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeInstrumentRiskAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instrument [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeInstrumentRiskAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeContractTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Contract [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_DerivativeContractTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ConsumerMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consumer [Member]</link:label>
    <link:label xlink:label="ufpt_ConsumerMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Consumer group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ConsumerMember" xlink:to="ufpt_ConsumerMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from investing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_AutomotiveMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Automotive [Member]</link:label>
    <link:label xlink:label="ufpt_AutomotiveMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Automotive group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_AutomotiveMember" xlink:to="ufpt_AutomotiveMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_IndustrialMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Industrial [Member]</link:label>
    <link:label xlink:label="ufpt_IndustrialMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Industrial group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_IndustrialMember" xlink:to="ufpt_IndustrialMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ElectronicsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Electronics [Member]</link:label>
    <link:label xlink:label="ufpt_ElectronicsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Electronics group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ElectronicsMember" xlink:to="ufpt_ElectronicsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_AerospaceDefenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aerospace &amp; Defense [Member]</link:label>
    <link:label xlink:label="ufpt_AerospaceDefenseMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Aerospace &amp; Defense group of major customers.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_AerospaceDefenseMember" xlink:to="ufpt_AerospaceDefenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:label="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Estimated Useful Lives [Table Text Block]</link:label>
    <link:label xlink:label="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of the estimated useful lives of property, plant and equipment held by the company.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:to="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net income per common share outstanding:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-qualified deferred compensation plan and other liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Excess tax benefits on equity awards</link:label>
    <link:label xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to the tax benefit from equity-based compensation costs.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DielectricsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dielectrics [Member]</link:label>
    <link:label xlink:label="ufpt_DielectricsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the entity Dielectrics.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DielectricsMember" xlink:to="ufpt_DielectricsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccruedLiabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income tax expense</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total income tax provision</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CashlessExerciseOfStockOptions" xlink:label="ufpt_CashlessExerciseOfStockOptions" xlink:type="locator"/>
    <link:label xlink:label="ufpt_CashlessExerciseOfStockOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_CashlessExerciseOfStockOptions</link:label>
    <link:label xlink:label="ufpt_CashlessExerciseOfStockOptions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cashless Exercise of Stock Options</link:label>
    <link:label xlink:label="ufpt_CashlessExerciseOfStockOptions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the value of shares surrendered to pay for the strike price of the options exercised.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_CashlessExerciseOfStockOptions" xlink:to="ufpt_CashlessExerciseOfStockOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amended and Restated Credit Agreement [Member]</link:label>
    <link:label xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the amended and restated credit agreement.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_UnsecuredTermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unsecured Term Loan [Member]</link:label>
    <link:label xlink:label="ufpt_UnsecuredTermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the unsecured term loan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_UnsecuredTermLoanMember" xlink:to="ufpt_UnsecuredTermLoanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SubsidiaryGuarantorsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsidiary Guarantors [Member]</link:label>
    <link:label xlink:label="ufpt_SubsidiaryGuarantorsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the subsidiary guarantors granting the credit agreement to the company.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SubsidiaryGuarantorsMember" xlink:to="ufpt_SubsidiaryGuarantorsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_FurnitureFixturesAndComputersMember" xlink:label="ufpt_FurnitureFixturesAndComputersMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_FurnitureFixturesAndComputersMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Furniture, Fixtures, and Computers [Member]</link:label>
    <link:label xlink:label="ufpt_FurnitureFixturesAndComputersMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities and long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_FurnitureFixturesAndComputersMember" xlink:to="ufpt_FurnitureFixturesAndComputersMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share Based Compensation Allocation of Recognized Period Costs, By Award Type [Table Text Block]</link:label>
    <link:label xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed. The amounts are aggregated by award type.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:to="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unsecured Revolving Credit Facility [Member]</link:label>
    <link:label xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the unsecured revolving credit facility.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccountsPayable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:label="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_AggregateDeferredTaxLiabilitiesNoncurrent</link:label>
    <link:label xlink:label="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Net long-term deferred tax liabilities</link:label>
    <link:label xlink:label="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The amount, in aggregate, of the deferred tax liability attributable to taxable temporary differences, net of deferred tax asset attributable to deductible temporary differences and carryforwards net of valuation allowances</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:to="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized tax benefits</link:label>
    <link:label xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The portion of difference between the effective income tax rate and domestic federal statutory income tax rate attributable to the amount of unrecognized tax benefits under enacted tax laws.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:label="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation programs</link:label>
    <link:label xlink:label="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from compensation and benefits costs.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:to="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:label="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NonemployeeDirectorStockIncentivePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nonemployee Director Stock Incentive Plan [Member]</link:label>
    <link:label xlink:label="ufpt_NonemployeeDirectorStockIncentivePlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to the Non-Employee Director Stock Incentive Plan of the entity.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:to="ufpt_NonemployeeDirectorStockIncentivePlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" xlink:label="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants</link:label>
    <link:label xlink:label="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants</link:label>
    <link:label xlink:label="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Gross number of share options (or share units) granted since inception of the share-based compensation plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" xlink:to="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Chairman Chief Executive Officer and President [Member]</link:label>
    <link:label xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the entity's Chairman, the highest ranking executive officer, who has an ultimate managerial responsibility for the entity and who reports to the board of directors and the first or second ranking officer who may be appointed by the board of directors.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:label="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Future Share-based Compensation Expense [Table Text Block]</link:label>
    <link:label xlink:label="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of the amount of future share-based compensation expense expected to be recorded in the succeeding fiscal years for equity securities granted.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:to="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="us-gaap_DefinedContributionPlanCostRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DefinedContributionPlanCostRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DefinedContributionPlanCostRecognized</link:label>
    <link:label xlink:label="us-gaap_DefinedContributionPlanCostRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedContributionPlanCostRecognized" xlink:to="us-gaap_DefinedContributionPlanCostRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice</link:label>
    <link:label xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares Paid for Exercise Price and Tax Withholding for Share-based Compensation, Average Market Price</link:label>
    <link:label xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the average price per share used by the employees to repay the employer for the exercise price and income tax withholding obligations.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" xlink:to="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the third fiscal year following the latest fiscal year.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the fourth fiscal year following the latest fiscal year.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the next fiscal year following the latest fiscal year.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:label xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the second fiscal year following the latest fiscal year.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" xlink:label="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount</link:label>
    <link:label xlink:label="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Self-insured Health Insurance Program, Stop Loss Amount</link:label>
    <link:label xlink:label="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of the stop loss per insured person under the partially self-insured health insurance program.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" xlink:to="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseAndRentalExpense" xlink:label="us-gaap_LeaseAndRentalExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseAndRentalExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LeaseAndRentalExpense</link:label>
    <link:label xlink:label="us-gaap_LeaseAndRentalExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Leases, Rent Expense, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseAndRentalExpense" xlink:to="us-gaap_LeaseAndRentalExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashEquivalentsAtCarryingValue</link:label>
    <link:label xlink:label="us-gaap_CashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash Equivalents, at Carrying Value, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashEquivalentsAtCarryingValue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:label="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Summary of Allowance for Doubtful Accounts and Revenue Adjustments [Table Text Block]</link:label>
    <link:label xlink:label="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of the allowance for doubtful accounts and revenue adjustments.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:to="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at beginning of year</link:label>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at end of year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based compensation expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:label xlink:label="dei_AmendmentFlag-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UseOfEstimates-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TreasuryStockSharesAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TreasuryStockSharesAcquired</link:label>
    <link:label xlink:label="us-gaap_TreasuryStockSharesAcquired-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Treasury Stock, Shares, Acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockSharesAcquired" xlink:to="us-gaap_TreasuryStockSharesAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</link:label>
    <link:label xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">(Gain) Loss on sales of property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharesOutstanding</link:label>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance (in shares)</link:label>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInOtherOperatingAssets</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_CurrentFiscalYearEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Basis Spread on Variable Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableLeaseCost" xlink:to="us-gaap_VariableLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total lease cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentInterestRateEffectivePercentage</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Interest Rate, Effective Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating, weighted-average discount rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCostAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease cost:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_LeaseCostAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalPeriodFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalYearFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConsolidationPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShortTermLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-term</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermLeaseCost" xlink:to="us-gaap_ShortTermLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCostTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentPeriodEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInPrepaidExpense</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating, weighted average remaining lease term (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityEmergingGrowthCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentFaceAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentFaceAmount</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentFaceAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Face Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentFaceAmount" xlink:to="us-gaap_DebtInstrumentFaceAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentType-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:label xlink:label="dei_EntitySmallBusiness-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityShellCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationTable-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityPublicFloat-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPublicFloat" xlink:to="dei_EntityPublicFloat-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityFilerCategory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCurrentReportingStatus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringCharges-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCharges" xlink:to="us-gaap_RestructuringCharges-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityVoluntaryFilers-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisition costs</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Acquisition Related Costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityWellKnownSeasonedIssuer-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">London Interbank Offered Rate (LIBOR) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PrimeRateMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prime Rate [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrimeRateMember" xlink:to="us-gaap_PrimeRateMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Excess tax benefits on share-based compensation - adjustment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Long-term Debt Instruments [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:to="us-gaap_ScheduleOfDebtInstrumentsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInIncomeTaxesReceivable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Refundable income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccountsReceivable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Receivables, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_QuarterlyFinancialInformationTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Quarterly Financial Information [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:to="us-gaap_QuarterlyFinancialInformationTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCentralIndexKey-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DepreciationAndAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DepreciationAndAmortization</link:label>
    <link:label xlink:label="us-gaap_DepreciationAndAmortization-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation, Depletion and Amortization, Nonproduction, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityRegistrantName-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TermLoanMember" xlink:label="ufpt_TermLoanMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_TermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Term Loan [Member]</link:label>
    <link:label xlink:label="ufpt_TermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information relating to term loans.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_TermLoanMember" xlink:to="ufpt_TermLoanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityDomain" xlink:to="dei_EntityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:label xlink:label="dei_LegalEntityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LegalEntityAxis" xlink:to="dei_LegalEntityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AmortizationOfIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AmortizationOfIntangibleAssets</link:label>
    <link:label xlink:label="us-gaap_AmortizationOfIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization of Intangible Assets, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TreasuryStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TreasuryStockValue</link:label>
    <link:label xlink:label="us-gaap_TreasuryStockValue-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Treasury stock at cost, 29,559 shares at December 31, 2019 and 2018</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockValue" xlink:to="us-gaap_TreasuryStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInInventories</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:label xlink:label="dei_TradingSymbol-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GainLossOnDispositionOfAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GainLossOnDispositionOfAssets</link:label>
    <link:label xlink:label="us-gaap_GainLossOnDispositionOfAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">(Gain) loss on sales of property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnDispositionOfAssets" xlink:to="us-gaap_GainLossOnDispositionOfAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise of stock options net of shares presented for exercise (in shares)</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Exercised, shares under options (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TableTextBlock</link:label>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes Tables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_TableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</link:label>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Exercise of stock options net of shares presented for exercise</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RelatedPartyDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Related Party [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyDomain" xlink:to="us-gaap_RelatedPartyDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based compensation (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative expenses</link:label>
    <link:label xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expense, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProvisionForDoubtfulAccounts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ProvisionForDoubtfulAccounts</link:label>
    <link:label xlink:label="us-gaap_ProvisionForDoubtfulAccounts-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Credit Loss Expense (Reversal)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based compensation</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Lender [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Raw materials</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lender Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesAndStockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities and stockholders' equity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashUninsuredAmount" xlink:label="us-gaap_CashUninsuredAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashUninsuredAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashUninsuredAmount</link:label>
    <link:label xlink:label="us-gaap_CashUninsuredAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, Uninsured Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashUninsuredAmount" xlink:to="us-gaap_CashUninsuredAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finished goods</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Work in process</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ResearchAndDevelopmentExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ResearchAndDevelopmentExpense</link:label>
    <link:label xlink:label="us-gaap_ResearchAndDevelopmentExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development Expense, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained earnings</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_InterestExpense</link:label>
    <link:label xlink:label="us-gaap_InterestExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Interest expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:label="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification of Material Overcharge Settlement to Selling, General and Administrative Expenses [Member]</link:label>
    <link:label xlink:label="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents reclassification of material overcharge settlement to selling, general and administrative expenses.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:to="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Changes in operating assets and liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DisclosureTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes to Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent" xlink:label="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent</link:label>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Assets for Plan Benefits, Defined Benefit Plan</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent" xlink:to="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeaseLiabilityNoncurrent</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Present value of lease liabilities</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating lease right of use assets</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_EngineeringAndDevelopmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Engineering and Development [Member]</link:label>
    <link:label xlink:label="ufpt_EngineeringAndDevelopmentMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the information pertaining to engineering and development.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_EngineeringAndDevelopmentMember" xlink:to="ufpt_EngineeringAndDevelopmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ToolingAndMachineryMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tooling and Machinery [Member]</link:label>
    <link:label xlink:label="ufpt_ToolingAndMachineryMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to tooling and machinery.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ToolingAndMachineryMember" xlink:to="ufpt_ToolingAndMachineryMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseLiability</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finance Lease, Liability, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiability" xlink:to="us-gaap_FinanceLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: Interest</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2024</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Measurement, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:to="us-gaap_FairValueMeasurementPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increases due to consideration received from customers</link:label>
    <link:label xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:to="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2024</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:label="us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SegmentReportingPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:to="us-gaap_SegmentReportingPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:label xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Working capital adjustment</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred, Working Capital Adjustment</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The amount of adjustment to working capital in a business combination.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of accrued liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_TradeNameAndBrandMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade Name and Brand [Member]</link:label>
    <link:label xlink:label="ufpt_TradeNameAndBrandMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Rights acquired through registration of a business name to gain or protect exclusive use thereof and the brand of the business.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_TradeNameAndBrandMember" xlink:to="ufpt_TradeNameAndBrandMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAssetsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetUsefulLife</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DeferredRevenueMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Revenue [Member]</link:label>
    <link:label xlink:label="ufpt_DeferredRevenueMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DeferredRevenueMember" xlink:to="ufpt_DeferredRevenueMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseTermOfContract</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Term of Contract</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseTermOfContract" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseRenewalTerm</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Renewal Term</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DepreciationDepletionAndAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation and amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationDepletionAndAmortization" xlink:to="us-gaap_DepreciationDepletionAndAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net share settlement of restricted stock units and stock option tax withholding (in shares)</link:label>
    <link:label xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:label="ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ShippingAndHandlingCostsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shipping and Handling Costs [Policy Text Block]</link:label>
    <link:label xlink:label="ufpt_ShippingAndHandlingCostsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure of accounting policy for the classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:to="ufpt_ShippingAndHandlingCostsPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AssetsCurrent</link:label>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:label xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increases due to revenue recognized - not invoiced to customers</link:label>
    <link:label xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from unbilled revenue recognized.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:to="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxesReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Refundable income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesReceivable" xlink:to="us-gaap_IncomeTaxesReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TreasuryStockShares-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Treasury stock, shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockShares" xlink:to="us-gaap_TreasuryStockShares-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, $.01 par value, 20,000,000 shares authorized; 7,475,768 and 7,446,209 shares issued and outstanding, respectively at December 31, 2019; and 7,415,002 and 7,385,443 shares issued and outstanding, respectively, at December 31, 2018</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net income to net cash provided by operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementFrequencyDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementsRecurringMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsRecurringMember" xlink:to="us-gaap_FairValueMeasurementsRecurringMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockParOrStatedValuePerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsValuationAllowance</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance, Total</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasePayments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating, cash paid for amounts included in measurement of lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MaximumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MinimumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="locator"/>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total identifiable assets</link:label>
    <link:label xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of assets acquired, including goodwill at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NumberOfLeaseTermOptions" xlink:label="ufpt_NumberOfLeaseTermOptions" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NumberOfLeaseTermOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_NumberOfLeaseTermOptions</link:label>
    <link:label xlink:label="ufpt_NumberOfLeaseTermOptions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Lease Term Options</link:label>
    <link:label xlink:label="ufpt_NumberOfLeaseTermOptions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of lease term options.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NumberOfLeaseTermOptions" xlink:to="ufpt_NumberOfLeaseTermOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_ProductOrServiceAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:label xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Percentage of concentration risk</link:label>
    <link:label xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The percentage of revenue, including tax collected from customer, from satisfaction of performance obligation by transferring promised good or service to customer.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:to="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_ProductsAndServicesDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsNet</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net deferred tax assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:to="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Flow, Supplemental Disclosures [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PrepaidExpenseCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsGross</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Gross, Total</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross deferred tax assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:to="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredIncomeTaxLiabilities</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Total deferred tax liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label xlink:label="us-gaap_InventoryNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total Inventory</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_MajorCustomersAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsInventory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory capitalization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsInventory" xlink:to="us-gaap_DeferredTaxAssetsInventory-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_NameOfMajorCustomerDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueInputsLevel2Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel2Member" xlink:to="us-gaap_FairValueInputsLevel2Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reserves</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReceivablesNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ReceivablesNetCurrent</link:label>
    <link:label xlink:label="us-gaap_ReceivablesNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Receivables, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesNetCurrent" xlink:to="us-gaap_ReceivablesNetCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Property, plant, and equipment, useful life (Year)</link:label>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PropertyPlantAndEquipmentUsefulLife</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConstructionInProgressMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Construction in Progress [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConstructionInProgressMember" xlink:to="us-gaap_ConstructionInProgressMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsReceivableGrossCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts receivable&#8211;trade</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableGrossCurrent" xlink:to="us-gaap_AccountsReceivableGrossCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less allowance for doubtful receivables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsReceivableNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Receivables, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapital-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity-based compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BuildingAndBuildingImprovementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Building and Building Improvements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BuildingAndBuildingImprovementsMember" xlink:to="us-gaap_BuildingAndBuildingImprovementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredCompensationPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredCompensationPlanAssets</link:label>
    <link:label xlink:label="us-gaap_DeferredCompensationPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-qualified deferred compensation plan</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationPlanAssets" xlink:to="us-gaap_DeferredCompensationPlanAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement liability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LandAndLandImprovementsMember" xlink:label="us-gaap_LandAndLandImprovementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LandAndLandImprovementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Land and Land Improvements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LandAndLandImprovementsMember" xlink:to="us-gaap_LandAndLandImprovementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders&#8217; equity:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseholdImprovementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseholdImprovementsMember" xlink:to="us-gaap_LeaseholdImprovementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other (expense) income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SegmentReportingDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State tax credits, net of federal impact</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryCashFlowPolicy" xlink:label="us-gaap_InventoryCashFlowPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryCashFlowPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Cash Flow Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryCashFlowPolicy" xlink:to="us-gaap_InventoryCashFlowPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current assets:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueDisclosuresTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerAssetReclassifiedToReceivable</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Decreases due to customer invoicing</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InvestmentIncomeInterest-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentIncomeInterest" xlink:to="us-gaap_InvestmentIncomeInterest-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInFinancingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash (used in) provided by financing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Liabilities</link:label>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommitmentsAndContingencies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and contingencies (Note 14)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingIncomeLoss</link:label>
    <link:label xlink:label="us-gaap_OperatingIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Operating income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Revenue recognized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInOperatingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by operating activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInInvestingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in investing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquired in Dielectrics business combination</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease</link:label>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change in cash and cash equivalents</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:to="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross profit</link:label>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross profit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CostOfGoodsAndServicesSold-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerLiability</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiability-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-02 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201602Member" xlink:to="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TypeOfAdoptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Type of Adoption [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_TypeOfAdoptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payment of statutory withholding for stock options exercised and restricted stock units vested</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Excess of book over tax basis of fixed assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LettersOfCreditOutstandingAmount</link:label>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Letters of Credit Outstanding, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LettersOfCreditOutstandingAmount" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments for New Accounting Pronouncements [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ProceedsFromStockOptionsExercised</link:label>
    <link:label xlink:label="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TreasuryStockMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Treasury Stock [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockMember" xlink:to="us-gaap_TreasuryStockMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapitalMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementEquityComponentsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EquityComponentDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CurrentIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Current income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherCurrentLiabilitiesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Current Liabilities [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherCurrentLiabilitiesMember" xlink:to="us-gaap_OtherCurrentLiabilitiesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</link:label>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income before income tax provision</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RepaymentsOfLongTermDebt</link:label>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Principal repayment of long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermDebt" xlink:to="us-gaap_RepaymentsOfLongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:label="ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DeferredTaxLiabilitiesRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_DeferredTaxLiabilitiesRightOfUseAsset</link:label>
    <link:label xlink:label="ufpt_DeferredTaxLiabilitiesRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Right of use asset</link:label>
    <link:label xlink:label="ufpt_DeferredTaxLiabilitiesRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of deferred tax consequences attributable to taxable temporary differences derived from right of use asset.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:to="ufpt_DeferredTaxLiabilitiesRightOfUseAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsLeaseLiability" xlink:label="ufpt_DeferredTaxAssetsLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="ufpt_DeferredTaxAssetsLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease liability</link:label>
    <link:label xlink:label="ufpt_DeferredTaxAssetsLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from lease liability.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_DeferredTaxAssetsLeaseLiability" xlink:to="ufpt_DeferredTaxAssetsLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_MachineryAndEquipmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Machinery and Equipment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BalanceSheetLocationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BalanceSheetLocationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_BalanceSheetLocationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefits</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Ending Balance</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Gross UTB balance at beginning of fiscal year</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Gross UTB balance at end of fiscal year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingPoliciesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OpenTaxYear" xlink:label="us-gaap_OpenTaxYear" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OpenTaxYear-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OpenTaxYear</link:label>
    <link:label xlink:label="us-gaap_OpenTaxYear-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Open Tax Year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OpenTaxYear" xlink:to="us-gaap_OpenTaxYear-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expenses [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityInteractiveDataCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Nonoperating Income (Expense) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Reductions for tax positions of prior years</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:label xlink:label="dei_Security12bTitle-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from the issuance of long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ValuationAllowancesAndReservesBalance</link:label>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance at beginning of year</link:label>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance at end of year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense</link:label>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Provision for bad debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ValuationAllowancesAndReservesDeductions</link:label>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Write-offs, net of recoveries</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAmount" xlink:label="us-gaap_TaxCreditCarryforwardAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TaxCreditCarryforwardAmount</link:label>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardAmount" xlink:to="us-gaap_TaxCreditCarryforwardAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</link:label>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RepaymentsOfLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RepaymentsOfLinesOfCredit</link:label>
    <link:label xlink:label="us-gaap_RepaymentsOfLinesOfCredit-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payments on revolving line of credit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLinesOfCredit" xlink:to="us-gaap_RepaymentsOfLinesOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Diluted weighted average common shares outstanding during the year (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from advances on revolving line of credit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="locator"/>
    <link:label xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ASC 606 adjustments</link:label>
    <link:label xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the cumulative effects of new accounting principle in period of adoption.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:to="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueByAssetClassAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Class [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueByAssetClassAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:to="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Class [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_EarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted net income per share (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in shares)</link:label>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic weighted average common shares outstanding during the year (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Excess compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDue</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EffectiveIncomeTaxRateContinuingOperations</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Effective tax rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_EarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic net income per share (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Impact on deferred taxes of new legislation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset and Liability [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:label="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders Equity, Treasury Stock [Policy Text Block]</link:label>
    <link:label xlink:label="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure of accounting policy for its treasury stock transactions.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:to="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in valuation allowance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2020</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfCashFlowsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2019</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_CommonStockOutstandingMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock Outstanding [Member]</link:label>
    <link:label xlink:label="ufpt_CommonStockOutstandingMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents common stock outstanding.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_CommonStockOutstandingMember" xlink:to="ufpt_CommonStockOutstandingMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Quarterly Financial Information [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:to="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Future Minimum Rental Payments for Operating Leases [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:to="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Domestic production deduction</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-deductible ISO stock option expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Meals and entertainment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Tax credits</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_OneStateJurisdictionMember" xlink:label="ufpt_OneStateJurisdictionMember" xlink:type="locator"/>
    <link:label xlink:label="ufpt_OneStateJurisdictionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">One State Jurisdiction [Member]</link:label>
    <link:label xlink:label="ufpt_OneStateJurisdictionMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information about One State Jurisdiction.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_OneStateJurisdictionMember" xlink:to="ufpt_OneStateJurisdictionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State taxes, net of federal tax benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets Measured on Recurring Basis [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from financing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Computed &#8220;expected&#8221; tax rate</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherLiabilitiesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilitiesNoncurrent" xlink:to="us-gaap_OtherLiabilitiesNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeNet" xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeFairValueOfDerivativeNet</link:label>
    <link:label xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Fair Value, Net, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:to="us-gaap_DerivativeFairValueOfDerivativeNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-qualified deferred compensation plan</link:label>
    <link:label xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Compensation Liability, Classified, Noncurrent, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net assets acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_StockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total stockholders' equity</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Acquisition of Dieletrics, net of cash acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementClassOfStockAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAcquiredFromAcquisition-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashAcquiredFromAcquisition</link:label>
    <link:label xlink:label="us-gaap_CashAcquiredFromAcquisition-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Cash from Dielectrics</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAcquiredFromAcquisition" xlink:to="us-gaap_CashAcquiredFromAcquisition-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term debt, excluding current portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid at closing</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesGross-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestRateSwapMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Rate Swap [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestRateSwapMember" xlink:to="us-gaap_InterestRateSwapMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Weighted Average Number of Shares [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFixedInterestRate" xlink:label="us-gaap_DerivativeFixedInterestRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeFixedInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeFixedInterestRate</link:label>
    <link:label xlink:label="us-gaap_DerivativeFixedInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Fixed Interest Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeFixedInterestRate" xlink:to="us-gaap_DerivativeFixedInterestRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:type="arc"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>12
<FILENAME>ufpt-20191231_pre.xml
<DESCRIPTION>XBRL PRESENTATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 12:32AM UTC 2020-03-13--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:href="ufpt-20191231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited" xlink:href="ufpt-20191231.xsd#statement-note-18-quarterly-financial-information-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_QuarterlyFinancialInformationTextBlock" xlink:label="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_QuarterlyFinancialInformationTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data" xlink:href="ufpt-20191231.xsd#statement-note-17-segment-data" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-17-segment-data" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-" xlink:href="ufpt-20191231.xsd#statement-note-16-fair-value-of-financial-instruments-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-14-commitments-and-contingencies" xlink:href="ufpt-20191231.xsd#statement-note-14-commitments-and-contingencies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-14-commitments-and-contingencies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses" xlink:href="ufpt-20191231.xsd#statement-note-9-accrued-expenses" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:label="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-" xlink:href="ufpt-20191231.xsd#statement-note-5-inventories-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-5-inventories-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-document-and-entity-information" xlink:href="ufpt-20191231.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityVoluntaryFilers" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityWellKnownSeasonedIssuer" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityInteractiveDataCurrent" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityPublicFloat" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets-parentheticals" xlink:href="ufpt-20191231.xsd#statement-consolidated-balance-sheets-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockShares" xlink:label="us-gaap_TreasuryStockShares" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesAuthorized" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TreasuryStockShares" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:label="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:label="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="us-gaap_LongtermDebtTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LongtermDebtTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_OneStateJurisdictionMember" xlink:label="ufpt_OneStateJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="ufpt_OneStateJurisdictionMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:label="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases" xlink:href="ufpt-20191231.xsd#statement-note-13-leases" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans" xlink:href="ufpt-20191231.xsd#statement-note-15-employee-benefit-plans" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:label="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CompensationAndEmployeeBenefitPlansTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-significant-accounting-policies-policies" xlink:href="ufpt-20191231.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:label="ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:label="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-significant-accounting-policies-policies" xlink:label="ufpt_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:label="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryCashFlowPolicy" xlink:label="us-gaap_InventoryCashFlowPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:label="us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-significant-accounting-policies-policies" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryCashFlowPolicy" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ufpt_ShippingAndHandlingCostsPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ufpt_StockholdersEquityTreasuryStockPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-tables" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:label="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-tables" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-tables" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-4-receivables-tables" xlink:label="ufpt_statement-statement-note-4-receivables-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-4-receivables-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-tables" xlink:href="ufpt-20191231.xsd#statement-note-5-inventories-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-5-inventories-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-5-inventories-tables" xlink:label="ufpt_statement-statement-note-5-inventories-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-5-inventories-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-tables" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-6-other-intangible-assets-tables" xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-6-other-intangible-assets-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-tables" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-7-property-plant-and-equipment-tables" xlink:label="ufpt_statement-statement-note-7-property-plant-and-equipment-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-7-property-plant-and-equipment-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-tables" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-8-indebtedness-tables" xlink:label="ufpt_statement-statement-note-8-indebtedness-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:label="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-8-indebtedness-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDebtInstrumentsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-tables" xlink:href="ufpt-20191231.xsd#statement-note-9-accrued-expenses-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-9-accrued-expenses-tables" xlink:label="ufpt_statement-statement-note-9-accrued-expenses-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-9-accrued-expenses-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-tables" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-tables" xlink:label="ufpt_statement-statement-note-10-income-tax-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-income-tax-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-tables" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-11-net-income-per-share-tables" xlink:label="ufpt_statement-statement-note-11-net-income-per-share-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-11-net-income-per-share-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:label="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-tables" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-tables" xlink:label="ufpt_statement-statement-note-13-leases-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:label="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-13-leases-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-tables" xlink:href="ufpt-20191231.xsd#statement-note-16-fair-value-of-financial-instruments-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables" xlink:label="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-tables" xlink:href="ufpt-20191231.xsd#statement-note-17-segment-data-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-17-segment-data-tables" xlink:label="ufpt_statement-statement-note-17-segment-data-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-17-segment-data-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-tables" xlink:href="ufpt-20191231.xsd#statement-note-18-quarterly-financial-information-unaudited-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables" xlink:label="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:label="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-tables" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-19-acquisition-tables" xlink:label="ufpt_statement-statement-note-19-acquisition-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-19-acquisition-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:href="ufpt-20191231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:label="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:label="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:label="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount" xlink:label="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashEquivalentsAtCarryingValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashUninsuredAmount" xlink:label="us-gaap_CashUninsuredAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockSharesAcquired" xlink:label="us-gaap_TreasuryStockSharesAcquired-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashEquivalentsAtCarryingValue-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashUninsuredAmount-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TreasuryStockSharesAcquired-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ResearchAndDevelopmentExpense-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense-n2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByAssetClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByAssetClassAxis" xlink:to="ufpt_DeferredRevenueMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CashlessExerciseOfStockOptions" xlink:label="ufpt_CashlessExerciseOfStockOptions-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_CashlessExerciseOfStockOptions-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProvisionForDoubtfulAccounts-n2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AmortizationOfIntangibleAssets-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DepreciationAndAmortization-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeNet" xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeFixedInterestRate" xlink:label="us-gaap_DerivativeFixedInterestRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="us-gaap_DerivativeGainLossOnDerivativeNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeNotionalAmount" xlink:label="us-gaap_DerivativeNotionalAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeTermOfContract" xlink:label="us-gaap_DerivativeTermOfContract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="us-gaap_LongtermDebtTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="ufpt_SubsidiaryGuarantorsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LongtermDebtTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LongtermDebtTypeAxis" xlink:to="ufpt_UnsecuredTermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_PrimeRateMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_InterestRateSwapMember" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentFaceAmount-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentInterestRateEffectivePercentage-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeNotionalAmount-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeTermOfContract-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFixedInterestRate-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeFairValueOfDerivativeNet-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeGainLossOnDerivativeNet-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_OneStateJurisdictionMember" xlink:label="ufpt_OneStateJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OpenTaxYear" xlink:label="us-gaap_OpenTaxYear-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAmount" xlink:label="us-gaap_TaxCreditCarryforwardAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="ufpt_OneStateJurisdictionMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TaxCreditCarryforwardAmount-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OpenTaxYear-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:label="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants" xlink:label="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation" xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice" xlink:label="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="us-gaap_RelatedPartyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PlanNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="ufpt_The2003IncentivePlanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="ufpt_NonemployeeDirectorStockIncentivePlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:to="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromStockOptionsExercised-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation-2" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseAndRentalExpense" xlink:label="us-gaap_LeaseAndRentalExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseAndRentalExpense-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-15-employee-benefit-plans-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount" xlink:label="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent" xlink:label="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DefinedContributionPlanCostRecognized" xlink:label="us-gaap_DefinedContributionPlanCostRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedContributionPlanCostRecognized-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-details-textual" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_NumberOfLeaseTermOptions" xlink:label="ufpt_NumberOfLeaseTermOptions-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseRenewalTerm" xlink:label="us-gaap_LesseeOperatingLeaseRenewalTerm-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseTermOfContract" xlink:label="us-gaap_LesseeOperatingLeaseTermOfContract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseTermOfContract-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_NumberOfLeaseTermOptions-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseRenewalTerm-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-1" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details" xlink:label="ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-13-leases-aggregate-future-lease-payments-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:label="ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDue" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears" xlink:label="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesFutureMinimumPaymentsDue-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_FurnitureFixturesAndComputersMember" xlink:label="ufpt_FurnitureFixturesAndComputersMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="ufpt_FurnitureFixturesAndComputersMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife-1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-5" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo" xlink:label="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:href="ufpt-20191231.xsd#statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:label="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareBasic-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareDiluted-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:label="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-n8" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:label="ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAcquiredFromAcquisition" xlink:label="us-gaap_CashAcquiredFromAcquisition-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashAcquiredFromAcquisition-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-1" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-n8" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-n8" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue-n8" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:href="ufpt-20191231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:label="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions-n8" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-schedule-ii-valuation-and-qualifying-accounts-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnDispositionOfAssets" xlink:label="us-gaap_GainLossOnDispositionOfAssets-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_GainLossOnDispositionOfAssets-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingAssets-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities-1" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability-1" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLinesOfCredit-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-3" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-4" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-income" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InvestmentIncomeInterest" xlink:label="us-gaap_InvestmentIncomeInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss-3" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InvestmentIncomeInterest" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-3" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss-3" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:href="ufpt-20191231.xsd#statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:label="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details" xlink:href="ufpt-20191231.xsd#statement-note-4-receivables-receivables-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-4-receivables-receivables-details" xlink:label="ufpt_statement-statement-note-4-receivables-receivables-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableGrossCurrent" xlink:label="us-gaap_AccountsReceivableGrossCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-4-receivables-receivables-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccountsReceivableGrossCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ReceivablesNetCurrent-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details" xlink:href="ufpt-20191231.xsd#statement-note-5-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-5-inventories-summary-of-inventory-details" xlink:label="ufpt_statement-statement-note-5-inventories-summary-of-inventory-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-5-inventories-summary-of-inventory-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20191231.xsd#statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:label="ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-6-other-intangible-assets-definitelived-intangible-assets-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="ufpt_TradeNameAndBrandMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_NoncompeteAgreementsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerListsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:href="ufpt-20191231.xsd#statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_FurnitureFixturesAndComputersMember" xlink:label="ufpt_FurnitureFixturesAndComputersMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:label="ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BuildingAndBuildingImprovementsMember" xlink:label="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LandAndLandImprovementsMember" xlink:label="us-gaap_LandAndLandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseholdImprovementsMember" xlink:label="us-gaap_LeaseholdImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_LandAndLandImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_BuildingAndBuildingImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_LeaseholdImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="ufpt_FurnitureFixturesAndComputersMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_ConstructionInProgressMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-longterm-debt-details" xlink:href="ufpt-20191231.xsd#statement-note-8-indebtedness-longterm-debt-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-longterm-debt-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_TermLoanMember" xlink:label="ufpt_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-8-indebtedness-longterm-debt-details" xlink:label="ufpt_statement-statement-note-8-indebtedness-longterm-debt-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-8-indebtedness-longterm-debt-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="ufpt_TermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebt" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtCurrent-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details" xlink:href="ufpt-20191231.xsd#statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details" xlink:label="ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedSalariesCurrent" xlink:label="us-gaap_AccruedSalariesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SelfInsuranceReserveCurrent" xlink:label="us-gaap_SelfInsuranceReserveCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-9-accrued-expenses-accrued-expenses-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedSalariesCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SelfInsuranceReserveCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedVacationCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:label="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:label="ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-income-tax-income-tax-rate-reconciliation-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:label="ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions-n8" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-income-tax-unrecognized-tax-benefits-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20191231.xsd#statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:label="ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:href="ufpt-20191231.xsd#statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:label="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-n9" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-n9" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-5" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice-5" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber-2" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:href="ufpt-20191231.xsd#statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:label="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DerivativeAssets" xlink:label="us-gaap_DerivativeAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueInputsLevel2Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeAssets" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-net-sales-by-market-details" xlink:href="ufpt-20191231.xsd#statement-note-17-segment-data-net-sales-by-market-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-17-segment-data-net-sales-by-market-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details" xlink:label="ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-17-segment-data-net-sales-by-market-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_MajorCustomersAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_MedicalMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_AutomotiveMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_ConsumerMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_AerospaceDefenseMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_IndustrialMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="ufpt_ElectronicsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets" xlink:href="ufpt-20191231.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockValue" xlink:label="us-gaap_TreasuryStockValue-n8" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseCurrent" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IncomeTaxesReceivable" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-3" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_DeferredCompensationPlanAssets-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Assets-3" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities-3" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapital" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_TreasuryStockValue-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:href="ufpt-20191231.xsd#statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:label="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-13-leases-lease-cost-details" xlink:href="ufpt-20191231.xsd#statement-note-13-leases-lease-cost-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-13-leases-lease-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-13-leases-lease-cost-details" xlink:label="ufpt_statement-statement-note-13-leases-lease-cost-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-13-leases-lease-cost-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCostAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_VariableLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_LeaseCost" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeasePayments" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LeaseCostAbstract" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2019/elts/srt-2019-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_ProductOrServiceAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="us-gaap_ProductMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="ufpt_ToolingAndMachineryMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="ufpt_EngineeringAndDevelopmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-income-tax-provision-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-income-tax-provision-details" xlink:label="ufpt_statement-statement-note-10-income-tax-income-tax-provision-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-income-tax-income-tax-provision-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:href="ufpt-20191231.xsd#statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_AggregateDeferredTaxLiabilitiesNoncurrent" xlink:label="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent-n10" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsLeaseLiability" xlink:label="ufpt_DeferredTaxAssetsLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:label="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DeferredTaxLiabilitiesRightOfUseAsset" xlink:label="ufpt_DeferredTaxLiabilitiesRightOfUseAsset-n8" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:label="ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities-n10" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets" xlink:label="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsInventory" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_DeferredTaxAssetsLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets-1" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross-3" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance-n8" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsNet-3" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill-n8" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_DeferredTaxLiabilitiesRightOfUseAsset-n8" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilities-n10" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_AggregateDeferredTaxLiabilitiesNoncurrent-n10" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:href="ufpt-20191231.xsd#statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_DielectricsMember" xlink:label="ufpt_DielectricsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:label="ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted" xlink:label="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax" xlink:label="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-19-acquisition-pro-forma-information-unaudited-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="ufpt_DielectricsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-stockholders-equity" xlink:href="ufpt-20191231.xsd#statement-consolidated-statements-of-stockholders-equity" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-stockholders-equity" xlink:type="extended">
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:label="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_TreasuryStockMember" xlink:label="us-gaap_TreasuryStockMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="ufpt_CommonStockOutstandingMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_TreasuryStockMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding-5" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:href="ufpt-20191231.xsd#statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20191231.xsd#ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:label="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2019/elts/us-gaap-2019-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ufpt_statement-statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiability-5" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet-4" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetNet-5" xlink:type="arc"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6673666720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 14 - Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Commitments and Contingencies</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"></td> <td style="width: 18pt">(a)</td> <td><div style="display: inline; font-style: italic;"><div style="display: inline; text-decoration: underline;">Leases</div></div> &#x2013; The Company has operating leases for certain facilities that expire through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2023.</div> Certain of the leases contain escalation clauses that require payments of additional rent as well as increases in related operating costs. See Note <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13</div> for details on lease commitments.</td> </tr>  </table> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <table cellpadding="0" cellspacing="0" style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27pt"></td> <td style="width: 18pt">(b)</td> <td><div style="display: inline; font-style: italic;"><div style="display: inline; text-decoration: underline;">Legal</div></div> &#x2013; From time to time, the Company <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be a party to various suits, claims and complaints arising in the ordinary course of business. In the opinion of management of the Company, these suits, claims and complaints should <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> result in final judgments or settlements that, in the aggregate, would have a material adverse effect on the Company&#x2019;s financial condition or results of operations.</td> </tr>  </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -URI http://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI http://asc.fasb.org/topic&amp;trid=2144648<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778766576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Quarterly Financial Information (Unaudited)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_QuarterlyFinancialInformationTextBlock', window );">Quarterly Financial Information [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">18</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Quarterly Financial Information (unaudited)</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Summarized quarterly financial data is as follows (in thousands, except per share data):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q1</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q2</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q3</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q4</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Net sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47,328</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">51,399</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,394</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50,260</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Gross profit</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,497</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,371</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,321</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,770</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,734</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,598</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,641</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,777</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Basic net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.50</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.62</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.76</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.78</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Diluted net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.50</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.62</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.75</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.76</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q1</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q2</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q3</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q4</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Net sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">42,931</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47,808</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50,697</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Gross profit</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,185</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,986</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,431</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,706</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,777</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,990</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,134</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,410</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Basic net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.24</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.56</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.60</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Diluted net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.24</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.56</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.59</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_QuarterlyFinancialInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for quarterly financial data. Includes, but is not limited to, tabular presentation of financial information for fiscal quarters, effect of year-end adjustments, and an explanation of matters or transactions that affect comparability of the information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -URI http://asc.fasb.org/topic&amp;trid=2126967<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_QuarterlyFinancialInformationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786856608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Summary of Significant Accounting Policies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock', window );">Property, Plant and Equipment, Estimated Useful Lives [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.65in; min-; min-width: 700px;"> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Leasehold improvements</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center">Shorter of estimated useful life <br /> or remaining lease term</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; width: 63%">Buildings and improvements (in years)</td> <td style="font-size: 10pt; width: 1%">&nbsp;</td> <td style="text-align: right; font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20</div></td> <td style="text-align: center; font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">- </div></td> <td style="font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">40</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Machinery &amp; equipment (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="text-align: right; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div></td> <td style="text-align: center; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Furniture, fixtures, computers &amp; software (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="text-align: right; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div></td> <td style="text-align: center; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div></td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.63in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="text-align: center; font-size: 10pt">&nbsp;</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Share-based compensation expense</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,591</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,212</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,068</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.63in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 54%; font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected volatility</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28.9</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.7</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 5%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.4%</div></td> <td style="width: 5%; font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="width: 5%; font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">29.1%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected dividends</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Risk-free interest rate</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.56%</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.84%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-indent: -6.85pt; padding-left: 6.85pt">Exercise price</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">38.61</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31.20</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$27.05</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> - </div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$28.70</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected term (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> to </div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.8</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Weighted-average grant date fair value</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12.70</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.15</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$5.59</div></td> <td style="font-size: 10pt; text-align: right"><div style=" font-size: 10pt; text-align: center; margin: 0pt 6.75pt 0pt 5.5pt"></div><div style=" font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$8.51</div></td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the estimated useful lives of property, plant and equipment held by the company.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_PropertyPlantAndEquipmentEstimatedUsefulLivesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6784303728">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Property, Plant and Equipment - Property, Plant, and Equipment (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">$ 116,089<span></span>
</td>
<td class="nump">$ 111,779<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandAndLandImprovementsMember', window );">Land and Land Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">3,191<span></span>
</td>
<td class="nump">3,191<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember', window );">Building and Building Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">35,502<span></span>
</td>
<td class="nump">35,187<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">3,022<span></span>
</td>
<td class="nump">2,843<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">66,438<span></span>
</td>
<td class="nump">62,440<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=ufpt_FurnitureFixturesAndComputersMember', window );">Furniture, Fixtures, and Computers [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">6,414<span></span>
</td>
<td class="nump">7,119<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember', window );">Construction in Progress [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">$ 1,522<span></span>
</td>
<td class="nump">$ 999<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandAndLandImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandAndLandImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=ufpt_FurnitureFixturesAndComputersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=ufpt_FurnitureFixturesAndComputersMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6784401536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Income Tax (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 21, 2019</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Deferred Tax Assets, Gross, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,881<span></span>
</td>
<td class="nump">$ 1,936<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Deferred Tax Assets, Valuation Allowance, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 136<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">34.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OpenTaxYear', window );">Open Tax Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2016 2017 2018 2019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Unrecognized Tax Benefits, Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 150<span></span>
</td>
<td class="nump">$ 150<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 153<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities</a></td>
<td class="nump">$ 156,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAxis=ufpt_OneStateJurisdictionMember', window );">One State Jurisdiction [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAmount', window );">Tax Credit Carryforward, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 348<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OpenTaxYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tax year that remains open to examination under enacted tax laws, in CCYY format.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OpenTaxYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>us-types:gYearListItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32559-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=SL37586934-109318<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32718-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardAxis=ufpt_OneStateJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardAxis=ufpt_OneStateJurisdictionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6799107120">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Summary of Significant Accounting Policies - Fair Value Assumptions (Details) - Share-based Payment Arrangement, Option [Member] - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">28.90%<span></span>
</td>
<td class="nump">27.70%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments', window );">Expected dividends</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="nump">2.30%<span></span>
</td>
<td class="nump">2.70%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice', window );">Exercise price (in dollars per share)</a></td>
<td class="nump">$ 38.61<span></span>
</td>
<td class="nump">$ 31.20<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (Year)</a></td>
<td class="text">6 years<span></span>
</td>
<td class="text">6 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant date fair value (in dollars per share)</a></td>
<td class="nump">$ 12.70<span></span>
</td>
<td class="nump">$ 10.15<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">27.40%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments', window );">Expected dividends</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.56%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice', window );">Exercise price (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 27.05<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2 years 255 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant date fair value (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5.59<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">29.10%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments', window );">Expected dividends</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free interest rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.84%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice', window );">Exercise price (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 28.70<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years 292 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant date fair value (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8.51<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The estimated amount of dividends to be paid to holders of the underlying shares (expected dividends) over the option's term. Dividends are taken into account because payment of dividends to shareholders reduces the fair value of the underlying shares, and option holders generally do not receive dividends.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6784070304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock', window );">Summary of Allowance for Doubtful Accounts and Revenue Adjustments [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Balance at beginning of year</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">564</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">652</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">567</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Provision for bad debt</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(52</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(50</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Write-offs, net of recoveries</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(26</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(38</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(31</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Balance at end of year</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">486</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">564</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">652</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the allowance for doubtful accounts and revenue adjustments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_SummaryOfAllowanceForDoubtfulAccountsAndRevenueAdjustmentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786847536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Fair Value of Financial Instruments (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock', window );">Fair Value, Assets Measured on Recurring Basis [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0 0pt 0.5in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt"><div style="display: inline; text-decoration: underline;">Level 2</div></div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">December 31,<br /> 2019</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Assets:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 35%; font-size: 10pt; text-align: left; text-indent: 10pt"><div style="display: inline; font-size: 10pt">Derivative financial instruments</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(325</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White; width: 50%"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, by class that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6611162848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue from Contract with Customer [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Revenue Recognition</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">Disaggregated Revenue</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following table presents the Company&#x2019;s revenue disaggregated by the major types of goods and services sold to our customers (in thousands) (See Note <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17</div> for further information regarding net sales by market):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: #0070C0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net sales of:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 55%; font-size: 10pt; text-align: left">Products</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">193,016</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">183,186</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">146,275</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Tooling and Machinery</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,730</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,302</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,181</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Engineering services</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,635</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,967</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">387</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Total net sales</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">198,381</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">190,455</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">147,843</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">Contract balances</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Timing of revenue recognition <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>differ from the timing of invoicing to customers. When invoicing occurs prior to revenue recognition, the Company has deferred revenue, or contract liabilities, included within &#x201c;deferred revenue&#x201d; on the condensed consolidated balance sheet.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 45; Value: 1 -->  <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following table presents opening and closing balances of contract liabilities for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; text-indent: 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; text-indent: 27.35pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Liabilities</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Years Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Deferred revenue - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,507</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">871</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Acquired in Dielectrics business combination</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,175</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Increases due to consideration received from customers</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,216</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,188</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Revenue recognized</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,149</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,727</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Deferred revenue - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,574</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,507</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Revenue recognized during the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> from amounts included in deferred revenue at the beginning of the period were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.7</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.6</div> million, respectively.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">When invoicing occurs after revenue recognition, the Company has unbilled receivables (contract assets) included within &#x201c;receivables&#x201d; on the condensed consolidated balance sheet.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following table presents opening and closing balances of contract assets for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Assets</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Years Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Unbilled Receivables - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Increases due to revenue recognized - not invoiced to customers</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">831</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">301</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Decreases due to customer invoicing</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(824</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(236</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Unbilled Receivables - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6784446240">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 12 - Stock Option and Equity Incentive Plans - Future Share-based Compensation Expense (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths', window );">2020</a></td>
<td class="nump">$ 1,115<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo', window );">2021</a></td>
<td class="nump">746<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree', window );">2022</a></td>
<td class="nump">409<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour', window );">2023</a></td>
<td class="nump">48<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total</a></td>
<td class="nump">2,318<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember', window );">Employee and Nonemployee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths', window );">2020</a></td>
<td class="nump">116<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo', window );">2021</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree', window );">2022</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour', window );">2023</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total</a></td>
<td class="nump">116<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths', window );">2020</a></td>
<td class="nump">999<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo', window );">2021</a></td>
<td class="nump">746<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree', window );">2022</a></td>
<td class="nump">409<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour', window );">2023</a></td>
<td class="nump">48<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Total</a></td>
<td class="nump">$ 2,202<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the next fiscal year following the latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the fourth fiscal year following the latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the third fiscal year following the latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of unrecognized cost of equity-based awards made to employees under equity-based compensation awards that have yet to vest, which is expected to be recognized during the second fiscal year following the latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost not yet recognized for nonvested award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R87.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6788223808">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 19 - Acquisition - Assets Acquires and Liabilities Assumed (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Feb. 01, 2018</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51,838<span></span>
</td>
<td class="nump">$ 51,838<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Cash paid at closing</a></td>
<td class="nump">$ 80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Working capital adjustment</a></td>
<td class="nump">250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAcquiredFromAcquisition', window );">Cash from Dielectrics</a></td>
<td class="num">(3,272)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total consideration</a></td>
<td class="nump">76,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="nump">4,384<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventory</a></td>
<td class="nump">4,418<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther', window );">Other current assets</a></td>
<td class="nump">122<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant and equipment</a></td>
<td class="nump">4,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">44,516<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill', window );">Total identifiable assets</a></td>
<td class="nump">81,424<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(1,325)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="num">(946)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue', window );">Deferred revenue</a></td>
<td class="num">(2,175)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Net assets acquired</a></td>
<td class="nump">76,978<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member] | Customer Lists [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">22,555<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member] | Noncompete Agreements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">462<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member] | Trade Name and Brand [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible assets</a></td>
<td class="nump">$ 367<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of adjustment to working capital in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of assets acquired, including goodwill at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsIncludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accrued liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred revenue expected to be recognized as such within one year or the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of intangible assets, excluding goodwill, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of inventory recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=116868840&amp;loc=d3e2207-128464<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=116868840&amp;loc=d3e2207-128464<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAcquiredFromAcquisition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAcquiredFromAcquisition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R83.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6949584816">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 16 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Derivative financial instruments</a></td>
<td class="num">$ (325)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=118260190&amp;loc=d3e13433-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6797448336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Stock Option and Equity Incentive Plans (Details Textual) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 05, 2019</div></th>
<th class="th"><div>Feb. 19, 2019</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Jun. 08, 2011</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,591<span></span>
</td>
<td class="nump">$ 1,212<span></span>
</td>
<td class="nump">$ 1,068<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember', window );">Employee and Nonemployee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">105,614<span></span>
</td>
<td class="nump">134,043<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">16,536<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,200<span></span>
</td>
<td class="nump">600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from Stock Options Exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<span></span>
</td>
<td class="nump">$ 1,300<span></span>
</td>
<td class="nump">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation', window );">Shares Paid for Exercise Price and Tax Withholding for Share Based Compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">6,511<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice', window );">Shares Paid for Exercise Price and Tax Withholding for Share-based Compensation, Average Market Price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 26.45<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">64,701<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,341<span></span>
</td>
<td class="nump">5,238<span></span>
</td>
<td class="nump">4,377<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice', window );">Shares Paid for Tax Withholding for Share Based Compensation Market Price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 33.69<span></span>
</td>
<td class="nump">$ 27.60<span></span>
</td>
<td class="nump">$ 24.50<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ufpt_The2003IncentivePlanMember', window );">The 2003 Incentive Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,252,613<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized', window );">Share-based Compensation Arrangement by Share-based Payment Award, Number of Additional Shares Authorized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">108,424<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">185,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">803,244<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ufpt_The2003IncentivePlanMember', window );">The 2003 Incentive Plan [Member] | Chairman Chief Executive Officer and President [Member] | Common Stock [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Shares Issued in Period</a></td>
<td class="nump">16,536<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ufpt_NonemployeeDirectorStockIncentivePlanMember', window );">Nonemployee Director Stock Incentive Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">975,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">79,648<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ufpt_NonemployeeDirectorStockIncentivePlanMember', window );">Nonemployee Director Stock Incentive Plan [Member] | Employee and Nonemployee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">95,614<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">365,026<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ufpt_NonemployeeDirectorStockIncentivePlanMember', window );">Nonemployee Director Stock Incentive Plan [Member] | Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,442<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted since inception of the share-based compensation plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrants</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of shares the employees use to repay the employer for the exercise price and income tax withholding obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the average price per share used by the employees to repay the employer for the exercise price and income tax withholding obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_SharesPaidForExercisePriceAndTaxWithholdingForShareBasedCompensationAverageMarketPrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>For net-share settlement of share-based awards when the employer settles employees' income tax withholding obligations, this element represents the market price per share of shares used by the employees to repay the employer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=SL79508275-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of additional shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=ufpt_The2003IncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=ufpt_The2003IncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=ufpt_NonemployeeDirectorStockIncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=ufpt_NonemployeeDirectorStockIncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6788495792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Income - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 198,381<span></span>
</td>
<td class="nump">$ 190,455<span></span>
</td>
<td class="nump">$ 147,843<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">144,422<span></span>
</td>
<td class="nump">142,147<span></span>
</td>
<td class="nump">112,356<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">53,959<span></span>
</td>
<td class="nump">48,308<span></span>
</td>
<td class="nump">35,487<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general, and administrative expenses</a></td>
<td class="nump">29,251<span></span>
</td>
<td class="nump">27,654<span></span>
</td>
<td class="nump">23,724<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Acquisition costs</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">1,089<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring costs</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">63<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">(Gain) Loss on sales of property, plant and equipment</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(47)<span></span>
</td>
<td class="nump">7<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="nump">24,708<span></span>
</td>
<td class="nump">19,612<span></span>
</td>
<td class="nump">11,693<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InvestmentIncomeInterest', window );">Interest income</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">47<span></span>
</td>
<td class="nump">216<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest expense</a></td>
<td class="num">(674)<span></span>
</td>
<td class="num">(1,320)<span></span>
</td>
<td class="num">(50)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other (expense) income</a></td>
<td class="num">(388)<span></span>
</td>
<td class="nump">64<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income tax provision</a></td>
<td class="nump">23,646<span></span>
</td>
<td class="nump">18,403<span></span>
</td>
<td class="nump">11,859<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">3,896<span></span>
</td>
<td class="nump">4,092<span></span>
</td>
<td class="nump">2,649<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 19,750<span></span>
</td>
<td class="nump">$ 14,311<span></span>
</td>
<td class="nump">$ 9,210<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Net income per common share outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 2.66<span></span>
</td>
<td class="nump">$ 1.95<span></span>
</td>
<td class="nump">$ 1.27<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 2.63<span></span>
</td>
<td class="nump">$ 1.93<span></span>
</td>
<td class="nump">$ 1.26<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted average common shares outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">7,424<span></span>
</td>
<td class="nump">7,347<span></span>
</td>
<td class="nump">7,248<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">7,516<span></span>
</td>
<td class="nump">7,430<span></span>
</td>
<td class="nump">7,337<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -URI http://asc.fasb.org/extlink&amp;oid=116868678&amp;loc=d3e1043-128460<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.2(a),(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1337-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=117327953&amp;loc=d3e4984-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1252-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=SL5780133-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=117327953&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1252-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1337-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 940<br> -SubTopic 20<br> -Section 25<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=68072869&amp;loc=d3e41242-110953<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of the cost of borrowed funds accounted for as interest expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28555-108399<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentIncomeInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669625-108580<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140864-122747<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6394359&amp;loc=d3e17939-110869<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=115931487&amp;loc=d3e140904-122747<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130543-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=68048583&amp;loc=d3e3636-108311<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1448-109256<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778717712">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Contract with Customer, Liability, Revenue Recognized</a></td>
<td class="nump">$ 3,149<span></span>
</td>
<td class="nump">$ 4,727<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByAssetClassAxis=ufpt_DeferredRevenueMember', window );">Deferred Revenue [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Contract with Customer, Liability, Revenue Recognized</a></td>
<td class="nump">$ 1,700<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByAssetClassAxis=ufpt_DeferredRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByAssetClassAxis=ufpt_DeferredRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796627456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Cash paid for:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Interest</a></td>
<td class="nump">$ 664<span></span>
</td>
<td class="nump">$ 1,303<span></span>
</td>
<td class="nump">$ 47<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income taxes, net of refunds</a></td>
<td class="nump">1,255<span></span>
</td>
<td class="nump">3,463<span></span>
</td>
<td class="nump">3,878<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Non-cash investing and financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid', window );">Capital additions accrued but not yet paid</a></td>
<td class="nump">$ 213<span></span>
</td>
<td class="nump">$ 218<span></span>
</td>
<td class="nump">$ 85<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future cash outflow to pay for purchases of fixed assets that have occurred.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4332-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4313-108586<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4304-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalExpendituresIncurredButNotYetPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4297-108586<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4297-108586<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3367-108585<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3536-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncashInvestingAndFinancingItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778767584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Other Intangible Assets (Details Textual) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of Intangible Assets, Total</a></td>
<td class="nump">$ 1.3<span></span>
</td>
<td class="nump">$ 1.2<span></span>
</td>
<td class="nump">$ 0.3<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16225-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786864464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Stock Option and Equity Incentive Plans (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock', window );">Schedule of Employee Service Share Based Compensation Allocation of Recognized Period Costs, By Award Type [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; text-decoration: underline;">Share-based compensation related to:</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Common stock grants</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">400</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">505</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">505</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Stock option grants</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">151</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">149</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">138</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restricted Stock Unit awards</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,040</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">558</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">425</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total share-based compensation</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,591</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,212</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,068</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Share-based Payment Arrangement, Option, Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt; text-align: center">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares Under<br /> Options</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted<br /> Average<br /> Exercise<br /> Price</div><br /> <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400">(per share)</div></td> <td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted<br /> Average<br /> Remaining<br /> Contractual<br /> Life</div><br /> <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400">(in years)</div></td> <td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Aggregate<br /> Intrinsic<br /> Value</div><br /> <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400">(in thousands)</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Outstanding December 31, 2018</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">134,043</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20.46</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td> <td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td> <td style="font-size: 10pt; text-align: right; width: 10%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Granted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,536</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">38.61</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Exercised</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(44,965</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15.68</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Outstanding December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">105,614</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25.34</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.70</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,563</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Exercisable at December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">85,328</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22.62</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.10</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,303</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Vested and expected to vest at December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">105,614</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25.34</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.70</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,563</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock', window );">Share-based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted<br /> Stock Units</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Weighted<br /> Average Award<br /> Date Fair Value</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Outstanding at December 31, 2018</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72,996</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.60</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Awarded</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">64,701</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33.55</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Shares vested</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(20,529</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.74</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Forfeitures</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,302</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33.31</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Outstanding at December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">113,866</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left">$</td> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28.36</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock', window );">Schedule of Future Share-based Compensation Expense [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Options</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted<br /> Stock Units</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">2020</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">999</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,115</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">746</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">746</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">409</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">409</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">2023</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">48</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">48</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,202</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,318</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the allocation of equity-based compensation costs to a given line item on the balance sheet and income statement for the period. This may include the reporting line for the costs and the amount capitalized and expensed. The amounts are aggregated by award type.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of future share-based compensation expense expected to be recorded in the succeeding fiscal years for equity securities granted.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ScheduleOfFutureShareBasedCompensationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>31
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( .-%;5 ?(\\#P    !,"   +    7W)E;',O+G)E;'.MDD^+
MPD ,Q;]*F?L:5\'#8CUYZ6U9_ )Q)OU#.Y,A$[%^>X>];+=44/ 87O+>CT?V
M/S2@=AQ2V\54C'X(J32M:OP"2+8ECVG%D4)6:A:/FD=I(*+ML2'8K-<[D*F'
M.>RGGD7E2B.5^S3%":4A+<TXP)6E/S/WJVR;A5ND9T*YKCM+1[873T$7LF<;
M!I99-G\LCNVW<+ZT+/0:S>,*P).B0\5?UX^8 TBTH_0(:+L A#&^NQT:E8(C
M-R."?S]PN -02P,$%     @ XT5M4"?HAPZ"    L0   !    !D;V-0<F]P
M<R]A<' N>&UL38Y-"\(P$$3_2NG=;BGH06) L$?!D_>0;FP@R8;-"OGYIH(?
MMWF\81AU8\K(XK%T-8943OTJDH\ Q:X831F:3LTXXFBD(3^ G/,6+V2?$9/
M-(X'P"J8%EQV^3O8:W7..7AKQ%/25V^9"CGIYFHQ*/B76_..7+8\#?NW_+""
MWTG] E!+ P04    " #C16U005$, >X    K @  $0   &1O8U!R;W!S+V-O
M<F4N>&ULS9+!:L,P#(9?9?B>R(E'&2;UI:.G#@8K;.QF;+4UBQ-C:R1]^R5>
MFS*V!]C1TN]/GT"-"=+T$9]C'S"2PW0W^K9+TH0U.Q$%"9#,";U.Y93HIN:A
MCU[3](Q'"-I\Z"-"S?D*/)*VFC3,P"(L1*8::Z2)J*F/%[PU"SY\QC;#K %L
MT6-'":JR J;FB>$\M@W< #.,,/KT74"[$'/U3VSN +LDQ^26U# ,Y2!R;MJA
M@K>GW4M>MW!=(MT9G'XE)^D<<,VNDU_%YG&_9:KF-2^X*"JQYP_R?B6Y>)]=
M?_C=A'UOW<']8^.KH&K@UUVH+U!+ P04    " #C16U0F5R<(Q &  "<)P
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
M5B67MGG>D(#:#0AL29,(02L,354.FJP,3B47MDW)>Y,4S,M*%E+P/B&I3X#
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
M%&VTG#21F@'$02HE:RH(''61L!>0-@-9(;83<W^;?C8F)6MJ11PE4C/ G&Y
MV XH5*+E&-Q.S.QQDAH:&EK%:C0#B-DU,+#_D#:@,)6*M6UTSUPY$,"(R$C1
MFDJ-0S*V( +^(@L[:?/@4.K5#*FL,D"EL6-60]B)2%M11%*P-A!9_G> D=.C
M##"I8R9)V(=(&Q$%JG^U@QCYJ'< 6LGZG@&(7:6"L1.Q#Q3+#IZ@N>*NVLII
MLL:X<PB1?P8PBH/(87^,[8]).VC@,"/&9L3:C+J)KDP=^$P8Q[*T0RQ@62<1
M1KY)7,*Q(;$V)%+>#R UDV1@2'&4RNRRSV/-)6-'8K \4<[/VD648HW$<NZ+
M&(=8[$2LG8B4XS,PD&Y@*,$ 2]C(=R=#7#<R8L<"@[$C<03>"E?RV"$8K%("
MN4H!D!Y<NOB;R)<3N>SS4'/%V"(8K%;DK&K+NK:O$J5FAS#67 ;NZ52-K8*!
M5<BE^!9 NI^!"?A \:>AYCL4V"H,L(I06H71Q7U%L:JK.\1Q$LIW&6%)Z+ X
M@ZW"Z)42A2QUZ]5-[,M9#X"(8]G3@(IBQTMHL#498$VAM":#/$<NKG>(4FZ1
M(8I35S\[MK" +872E@Q> ZE-*,!QQ)$LFRA<X"J:!GN3 =X42F\RVE1"/3[
M,L@$L9P!9H"+(M<6@L$F98!)J?62T:YB6.XY[1 5ZUD PLB$+MG8H0S8M)-O
M_7:"HID@74( I9++8*S[Y$;5WMV&=&GKUV&SOUGLJ[=SV^_KWEV]?5!XXGY#
M6US?TD,V?A;X&6;\2O%'7K^>SLWBN6K;JAPVM5^JJK6=2O]+UZM'FQ]N)X5]
M:?O#N#NNQZ\#XTE;7:8O'][M\\OF?U!+ P04    " #C16U0L+RW +<!  #2
M P  &    'AL+W=O<FMS:&5E=',O<VAE970W+GAM;&U3VV[;, S]%4$?4#E.
MTF6!;:#I,&S "@0=MCXK-FT+U<63Y+C]^U&RZ[F=7R21XCD\I*AL,/;9M0">
MO"BI74Y;[[LC8ZYL07%W8SK0>%,;J[A'TS;,=19X%4%*LC1);IGB0M,BB[ZS
M+3+3>RDTG"UQO5+<OIY FB&G&_KF>!1-ZX.#%5G'&_@)_E=WMFBQF:42"K03
M1A,+=4[O-L?3+L3'@-\"!K<XDU#)Q9CG8'RO<IH$02"A](&!XW:%>Y R$*&,
M/Q,GG5,&X/+\QOXUUHZU7+B#>R.?1.7;G!XHJ:#FO?2/9O@&4SU[2J;B?\ 5
M)(8')9BC--+%E92]\T9-+"A%\9=Q%SKNPWBS3R?8.B"= .D,.,0\;$P4E7_A
MGA>9-0.Q8^\['IYX<TRQ-V5PQE;$.Q3OT'LM-OM#QJZ!:(HYC3'I,F:.8,@^
MITC74IS2_^#I.GR[JG ;X=MW"C^O$^Q6"7:18+<DN$T^E+@6\[%(MNBI MO$
M:7*D-+V.D[SPS@-[%Q^1_0L?I_V!VT9H1R[&X\O&_M?&>$ IR0V.4(L?;#8D
MU#X</^'9CF,V&MYTTP]B\S<N_@)02P,$%     @ XT5M4'%\[%NW 0  T@,
M !@   !X;"]W;W)K<VAE971S+W-H965T."YX;6QM4]MNW" 0_17$!X1=UDF3
ME6TIFRA*I41:I6KZS-IC&P4\#N!U^O<%[+ANZA=@AG/.7!C2 <V;;0 <^="J
MM1EMG.OVC-FB 2WL!7;0^IL*C1;.FZ9FMC,@RDC2BO'-YHII(5N:I]%W-'F*
MO5.RA:,AMM=:F-\'4#AD=$L_'2^R;EQPL#SM1 T_P/WLCL9;;%8II8;62FR)
M@2JCM]O](0GX"'B5,-C%F81*3HAOP?A>9G03$@(%A0L*PF]GN .E@I!/XWW2
MI'/(0%R>/]4?8NV^EI.P<(?JERQ=D]%K2DJH1*_<"PZ/,-5S2<E4_!.<07EX
MR,3'*%#9N)*BMP[UI.)3T>)CW&4;]V&\26XFVCJ!3P0^$ZYC'#8&BIG?"R?R
MU.! S-C[3H0GWNZY[TT1G+$5\<XG;[WWG&^O>,K.06C"'$8,7V)F!//J<PB^
M%N+ _Z/S=?IN-<-=I.^6T2]OU@6258$D"B3_E+C[4N(:)OD2A"UZJL'4<9HL
M*;!OXR0OO// WO+X)G_AX[0_"U/+UI(3.O^RL?\5H@.?RN;"CU#C/]AL**A<
M.'[S9S..V6@X[*8?Q.9OG/\!4$L#!!0    ( .-%;5#RB_ZOMP$  -(#   8
M    >&PO=V]R:W-H965T<R]S:&5E=#DN>&UL;5/M;ML@%'T5Q .4Q''2-K(M
M-:VF3=JDJ-.VW\2^ME&!ZP&.N[<?8-?S6O\![N6<<S^X9 .:%]L"./*JI+8Y
M;9WKCHS9L@7%[0UVH/U-C49QYTW3,-L9X%4D*<F2S>; %!>:%EGTG4V18>^D
MT' VQ/9*<?/G!!*'G&[IF^-9-*T+#E9D'6_@.[@?W=EXB\TJE5"@K4!-#-0Y
M?=@>3VG 1\!/ 8-=G$FHY(+X$HPO54XW(2&04+J@P/UVA4>0,@CY-'Y/FG0.
M&8C+\YOZIUB[K^7"+3RB_"4JU^;TCI(*:MY+]XS#9YCJV5,R%?\5KB ]/&3B
M8Y0H;5Q)V5N':E+QJ2C^.NY"QWT8;]+[B;9.2"9",A/N8APV!HJ9/W''B\S@
M0,S8^XZ')]X>$]^;,CAC*^*=3]YZ[[78'O89NP:A"7,:,<D2,R.85Y]#)&LA
M3LD'>K).WZUFN(OTW3+Z_GY=(%T52*- ^E^)AW<EKF%NWP5ABYXJ,$V<)DM*
M['6<Y(5W'MB')+[)/_@X[=^X:82VY(+.OVSL?XWHP*>RN?$CU/H/-AL2:A>.
MM_YLQC$;#8?=](/8_(V+OU!+ P04    " #C16U0R, ?C;@!  #2 P  &0
M 'AL+W=O<FMS:&5E=',O<VAE970Q,"YX;6QM4]MNG# 0_17+'Q"S[&:S60%2
M-E'52JVT2M7VV0L#6/&%VF9)_[YC0RA->+$]XW/.7#S.!F-?7 O@R:N2VN6T
M];X[,N;*%A1W-Z8#C3>UL8I[-&W#7&>!5Y&D)$N39,\4%YH66?2=;9&9WDNA
MX6R)ZY7B]L\)I!ERNJ%OCF?1M#XX6)%UO('OX']T9XL6FU4JH4 [832Q4.?T
M87,\[0(^ GX*&-SB3$(E%V->@O&ERFD2$@()I0\*'+<K/(*400C3^#UITCED
M("[/;^J?8NU8RX4[>#3REZA\F],#)174O)?^V0R?8:KGEI*I^*]P!8GPD G&
M*(UT<25E[[Q1DPJFHOCKN L=]V&\V>\GVCHAG0CI3#C$.&P,%#-_XIX7F34#
ML6/O.QZ>>'-,L3=E<,96Q#M,WJ'W6FSVAXQ=@]"$.8V8=(F9$0S5YQ#I6HA3
M^H&>KM.WJQEN(WV[C'Y[ORZP6Q7818'=?R7>ORMQ!7.7O O"%CU58)LX38Z4
MIM=QDA?>>6 ?TO@F_^#CM'_CMA':D8OQ^+*Q_[4Q'C"5Y 9'J,4/-AL2:A^.
M=WBVXYB-AC?=](/8_(V+OU!+ P04    " #C16U0) TCS;8!  #2 P  &0
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
MFXWSKQ =^%(V-WZ%&O_ 9D=!Y8)Y[VTSKMGH..RF%\3F9YS_ 5!+ P04
M" #C16U0I!*P Z0"   4"P  &0   'AL+W=O<FMS:&5E=',O<VAE970R-RYX
M;6QU5M&.VC 0_)4H'W".30+<"9#@JJJ56@E=U>NS 0/1)7%J&[C^?6TGEU)G
M_$)B,SNSCF=7N[A)]:;/0ICDO:X:O4S/QK1/A.C]6=1</\A6-/:?HU0U-W:I
M3D2W2O"##ZHKPK)L2FI>-NEJX?>V:K60%U.5C=BJ1%_JFJL_&U')VS*EZ<?&
M2WDZ&[=!5HN6G\0/87ZV6V579& YE+5H="F;1(GC,EW3IPUC+L C7DMQTW?O
MB3O*3LHWM_AZ6*:9RTA48F\<!;>/JW@65>68;!Z_>])TT'2!]^\?[)_]X>UA
M=ER+9UG]*@_FO$SG:7(01WZIS(N\?1']@8HTZ4__35Q%9>$N$ZNQEY7VO\G^
MHHVL>Q:;2LW?NV?9^.>M^V<V[\-P .L#V! P]SJD$_*9?^*&KQ9*WA+5??R6
MNSNF3\Q^F[W;])_"_V>3UW;WNF+T<4&NCJC';#H,N\/0 4$L^R#!D,2&C<(9
M#I_ #"<^?'(?SC),D$."W!/D_Q'0X(@($\FR@"(%()@$(@B38Y$I%)D"@B(0
M09@I%IE!D1D@F 4B"#/'(G,H,@<$H>T 9A*Y^$<H\@@(PHM'F,C%TPQ74 8H
MPJN'H,C=TTBE4D 1WCX$1:Z?PG)=4P8H0@- 4,0!%-<UG0"*4>L!H#QB HK+
MGX+:SD,;0%#,![@#4%#>^<@'"!3S 6X"%%1X/O(! L5\@/L !46>CWR 0#$?
MX%9 09WG(Q\ 4!'S >X&%)1Z,?(! D5\P' _8*#4B] '$!3Q </]@(%2+T(?
M0%#$!PSW P9*O0A] $&A#\C=4%(+=?+CF$[V\M+X6?!N=QCYUG[B(__@W;SX
MG:M3V>AD)XT=C?P <Y32")M+]F!K[&Q'U&%1B:-QKS/[KKHYK5L8V?8S*!D&
MX=5?4$L#!!0    ( .-%;5 V 2YTS0$  )P$   9    >&PO=V]R:W-H965T
M<R]S:&5E=#(X+GAM;'54;8_4(!#^*X0?<+3LMNJF;7)[QFBBR>:,^IEMIR\Y
M*!7H]OSW NW66O'+PDR?EQF6(9ND>M$M@$&O@O<ZQZTQPXD07;8@F'Z0 _3V
M2RV58,:&JB%Z4, J3Q*<T"A*B6!=CXO,YRZJR.1H>-?#12$]"L'4KS-P.>4X
MQO?$<]>TQB5(D0VL@:]@O@T792.RJE2=@%YWLD<*ZAP_QJ=SZO >\+V#26_V
MR'5RE?+%!9^J'$>N(.!0&J? ['*#)^#<"=DR?BZ:>+5TQ.W^KO[!]VY[N3(-
M3Y+_Z"K3YO@M1A74;.3F64X?8>DGP6AI_C/<@%NXJ\1ZE))K_XO*41LI%A5;
MBF"O\]KU?IT6_3LM3* +@>X(9#;RE;]GAA69DA-2\]D/S/W%\8G:LRE=TA^%
M_V:+US9[*VCR+B,W)[1@SC.&;C#QBB!6?;6@(8LS_8=.P_1#L,*#IQ^V]#0*
M"QR# D<O</Q+(-ZU&,+\I\HD:)($! X[DQ#F&#9)@R9I0"#9F80PZ<Z$;&Z'
M -7XN="HE&/O9W*374?OD?K;]0<^S^T7IIJNU^@JC;VC_B;54AJPI40/MN'6
M/A5KP*$V;OO&[M4\,'-@Y+"\!61]D(K?4$L#!!0    ( .-%;5!*KH;OQ0$
M #<$   9    >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM;&U4VV[<(!#]%<0'
M!"][[<JVE$T4M5(KK5(U?6;ML8T"Q@6\3O^^@!W7V?!BF.',F3,#XW10^M4T
M !:]2=&:##?6=D="3-& 9.9.=="ZDTIIR:PS=4U,IX&5(4@*0I-D1R3C+<[3
MX#OK/%6]%;R%LT:FEY+IOR<0:LCP"K\[GGG=6.\@>=JQ&GZ"_=6=M;/(S%)R
M":WAJD4:J@S?KXZGK<<'P N'P2SVR%=R4>K5&]_*#"=>$ @HK&=@;KG" PCA
MB9R,/Q,GGE/ZP.7^G?TIU.YJN3 ##TK\YJ5M,GS J(2*]<(^J^$K3/5L,9J*
M_PY7$ [NE;@<A1(F?%'1&ZODQ.*D2/8VKKP-ZS">[-936#R 3@%T#CB$/&1,
M%)0_,LOR5*L!Z;'W'?-7O#I2UYO".T,KPID3;YSWFM/=/B573S1A3B.&+C"K
M&4$<^YR"QE*<Z*=P&@]?1Q6N0_CZ@\(D3K")$FP"P>8#P>&FQ!CF2SS)-IID
M^YE@G]PDB6%N.TD6%R=!U^')&E2HO@WCLO#.4W%/P\7_AX\C]8/IFK<&791U
MSR=<<J64!2<EN7-:&C?%LR&@LGZ[=WL]ON71L*J;QI3,_XK\'U!+ P04
M" #C16U0484\3[<!  #2 P  &0   'AL+W=O<FMS:&5E=',O<VAE970S,"YX
M;6QM4]MNW" 0_17$!P0OZ^Y&*]M2-E752JVT2M7VF;7'-@H8%_ Z_?L.V''<
MU"_ #.><N3!DH['/K@7PY$6KSN6T];X_,>;*%K1P=Z:'#F]J8[7P:-J&N=Z"
MJ"))*\:3Y,"TD!TMLNB[V"(S@U>R@XLE;M!:V#]G4&;,Z8Z^.IYDT_K@8$76
MBP:^@__17RQ:;%&II(;.2=,1"W5.'W:G<QKP$?!3PNA69Q(JN1KS'(PO54Z3
MD! H*'U0$+C=X!&4"D*8QN]9DRXA W%]?E7_%&O'6J["P:-1OV3EVYS>4U)!
M+0;EG\SX&>9Z/E R%_\5;J 0'C+!&*51+JZD')PW>E;!5+1XF7;9Q7V<;@['
MF;9-X#.!+X3[&(=-@6+F'X4716;-2.S4^UZ$)]Z=./:F#,[8BGB'R3OTW@I^
MY!F[!:$9<YXP?(79+0B&ZDL(OA7BS/^C\VWZ?C/#?:3OU_1#LBV0;@JD42#]
MI\3]NQ*W,.F[(&S54PVVB=/D2&F&+D[RRKL,[ ./;_(&GZ;]F["-[!RY&H\O
M&_M?&^,!4TGN<(1:_&"+H:#VX7C$LYW&;#*\Z><?Q)9O7/P%4$L#!!0    (
M .-%;5"<VYI(N $  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#,Q+GAM
M;&U3[6[;(!1]%<0#%(>D21?9EII6U29M4M1IW6]B7]NHX.L!CKNW'V#7\SK_
M >[EG',_N*0#FE?; #CRIE5K,]HXUQT9LT4#6M@;[*#U-Q4:+9PW3<UL9T"4
MD:05XTFR9UK(EN9I])U-GF+OE&SA;(CMM1;F]PD4#AG=T'?'LZP;%QPL3SM1
MPW=P/[JS\1:;54JIH;426V*@RNC]YGC:!7P$O$@8[.),0B47Q-=@?"DSFH2$
M0$'A@H+PVQ4>0*D@Y-/X-6G2.60@+L_OZD^Q=E_+15AX0/53EJ[)Z!TE)52B
M5^X9A\\PU7-+R53\5[B"\O"0B8]1H+)Q)45O'>I)Q:>BQ=NXRS;NPWAS^#31
MU@E\(O"9<!?CL#%0S/Q1.)&G!@=BQMYW(CSQYLA];XK@C*V(=SYYZ[W7G!]N
M4W8-0A/F-&+X K.9$<RKSR'X6H@3_X_.U^G;U0RWD;Y=TO?)NL!N56 7!7;_
ME+C_4.(:YO A"%OT5(.IXS194F#?QDE>>.>!O>?Q3?["QVG_)DPM6TLNZ/S+
MQOY7B Y\*LF-'Z'&?[#94%"Y<#SXLQG';#0<=M,/8O,WSO\ 4$L#!!0    (
M .-%;5"$/0SCMP$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM
M;&U3[6[;(!1]%<0#%(>D;1;9EII6U29M4M1IW6]B7]NHX.L!CKNW'V#'\SK_
M >[EG',_N*0#FC?; #CRKE5K,]HXUQT8LT4#6M@;[*#U-Q4:+9PW3<UL9T"4
MD:05XTERQ[20+<W3Z#N9/,7>*=G"R1#;:RW,[R,H'#*ZH5?'BZP;%QPL3SM1
MPW=P/[J3\1:;54JIH;426V*@RNC#YG#<!7P$O$H8[.),0B5GQ+=@?"DSFH2$
M0$'A@H+PVP4>0:D@Y-/X-6G2.60@+L]7]>=8NZ_E+"P\HOHI2]=D=$])"97H
ME7O!X3-,]=Q2,A7_%2Z@/#QDXF,4J&Q<2=%;AWI2\:EH\3[NLHW[,-[<7FGK
M!#X1^$S81P(; \7,GX03>6IP(&;L?2?"$V\.W/>F",[8BGCGD[?>>\GY_3YE
MER T88XCAB\PFQG!O/H<@J^%./+_Z'R=OEW-<!OIVR7]+ED7V*T*[*+ [I\2
M/WTH<06S_QB$+7JJP=1QFBPIL&_C)"^\\\ ^\/@F?^'CM'\3II:M)6=T_F5C
M_RM$!SZ5Y,:/4.,_V&PHJ%PXWONS&<=L-!QVTP]B\S?._P!02P,$%     @
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
M".ZX5D)H,*6$=V97&_,>+0&#2MMI8N9RNI53H$4_/SAX>?7ROU!+ P04
M" #C16U0DU^O9K<!  #2 P  &0   'AL+W=O<FMS:&5E=',O<VAE970S."YX
M;6QM4]MNW" 0_17$!P2OU[N-5K:E;*JJE5IIE:KM,VN/;11@7,#K].\+V''<
MU"_ #.><N3#D(YIGVP$X\J*DM@7MG.M/C-FJ \7M'?:@_4V#1G'G3=,RVQO@
M=20IR=(D.3+%A:9E'GT74^8X."DT7 RQ@U+<_#F#Q+&@._KJ>!)MYX*#E7G/
M6_@.[D=_,=YBBTHM%&@K4!,#34$?=J=S%O 1\%/ :%=G$BJY(CX'XTM=T"0D
M!!(J%Q2XWV[P"%(&(9_&[UF3+B$#<7U^5?\4:_>U7+F%1Y2_1.VZ@MY34D/#
M!^F></P,<ST'2N;BO\(-I(>'3'R,"J6-*ZD&ZU#-*CX5Q5^F7>BXC]/-\3#3
MM@GI3$@7PGV,PZ9 ,?./W/$R-S@2,_6^Y^&)=Z?4]Z8*SMB*>.>3M]Y[*_=)
MEK-;$)HQYPF3KC"[!<&\^A(BW0IQ3O^CI]OT_6:&^TC?K^G'9%L@VQ3(HD#V
M3XF'=R5N88[O@K!53Q68-DZ3)14..D[RRKL,[$,:W^0-/DW[-VY:H2VYHO,O
M&_O?(#KPJ21W?H0Z_\$60T+CPO&#/YMIS";#83__(+9\X_(O4$L#!!0    (
M .-%;5!34[N,W0$   $%   9    >&PO=V]R:W-H965T<R]S:&5E=#,Y+GAM
M;'54ZV[;(!1^%<0#%%^2N(ML2TVK:I,V*>JT[C>QCR\J& ]PW+W] #N>Y[(_
M@7/\7<XA'-)1R#?5 &CTSEFG,MQHW1\)444#G*H[T4-GOE1"<JI-*&NB>@FT
M="3.2!0$!\)IV^$\=;FSS%,Q:-9V<)9(#9Q3^?L$3(P9#O$M\=+6C;8)DJ<]
MK>$[Z!_]69J(+"IERZ%3K>B0A"K##^'QE%B\ [RV,*K5'ME.+D*\V>!+F>'
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
M<R]S:&5E=#0V+GAM;(56;6^;,!#^*XCO*]B\A2J)5(*F3=JDJE.WSV[B)*B
MF>TDW;^?;0@E]M%^"?;QW#W/7<SYEA?&7\614NF]-74K5OY1RNX^",3V2!LB
M[EA'6_5FSWA#I-KR0R Z3LG..#5U@,,P#1I2M?YZ:6R/?+UD)UE7+7WDGC@U
M#>'_"EJSR\I'_M7P5!V.4AN"];(C!_J+RN?ND:M=,$;950UM1<5:C]/]RG]
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
MN[T0BFN2@:>%==1_#H9%P?>J?4WT>]--R-U"B;J?_OWA+\CJ/U!+ P04
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
M3%3+/Q/"D4#T'T2E&O$5L&PP.G.Y3,6:3J-PVG RS&/>6[XUBC]02P,$%
M  @ XT5M4+E,]:3? 0  E00  !D   !X;"]W;W)K<VAE971S+W-H965T-3,N
M>&ULA53;CILP$/T5Y ]8 Z'9-@*D)5'52JT4;=7VV8'AHO6%VB9L_[ZV<5A"
MHNT+]@SGG+G8XW04\D6U #IX992K#+5:]SN,5=D"(^I!],#-GUI(1K0Q98-5
M+X%4CL0HCL-PBQGI.,I3YSO*/!6#IAV'HPS4P!B1?PN@8LQ0A"Z.YZYIM77@
M/.U) S] _^R/TEAX5JDZ!EQU@@<2Z@P]1;O#QN(=X%<'HUKL UO)28@7:WRM
M,A3:A(!"J:T",<L9]D"I%3)I_/&:: YIB<O]1?VSJ]W4<B(*]H+^[BK=9N@C
M"BJHR4#ULQB_@*_G PI\\=_@#-3 ;28F1BFH<M^@')06S*N85!AYG=:.NW7T
M^A?:?4+L"?%,B+;O$C:>L'DC).\2$D](5@0\E>)Z<R":Y*D48R"GT^V)O431
M+C'=+ZW3-=O],^U1QGO.DRA,\=D*>4PQ8>(%)IH1V*C/(>)[(8KXAAY?!]C?
M(I+H&G*XA7P*[R>QN5OGQO&3JQ"K&,6$V3H,=YA5)_;_11QN$=%CO$H4+PZ'
M@6S<Q5=!*0:N;8T+[SQ;3[$]W)6_,#,WC<B;S#2PWXEL.JZ"D]#FZK@#KH70
M8%(,'\P4M.:-F T*M;;;1[.7TZ1,AA:]?P3P_!+E_P!02P,$%     @ XT5M
M4%XB[T,P @  =P8  !D   !X;"]W;W)K<VAE971S+W-H965T-30N>&UL?57M
MCILP$'P5Q .<^3"01@G2A:AJI5:*KNKUMT,V 9W!U';"]>UK&\(18]T?;"\S
ML[,V7C8]XV^B I#>>T-;L?4K*;LU0J*LH"'BB770JC=GQALBU9)?D.@XD),A
M-11%09"BAM2MGV],[,#S#;M*6K=PX)ZX-@WA_W9 6;_U0_\>>*DOE=0!E&\Z
M<H%?(']W!ZY6:%(YU0VTHF:MQ^&\]9_#]3[3> -XK:$7L[FG*SDR]J87WT];
M/]"&@$(IM0)1PPT*H%0+*1M_1TU_2JF)\_E=_:NI7=5R) (*1O_4)UEM_97O
MG>!,KE2^L/X;C/4DOC<6_P-N0!5<.U$Y2D:%>7KE54C6C"K*2D/>A[%NS=B/
M^G>:FQ"-A&@BA.FGA'@DQ!\$_"D!CP1L$=!0BMF;/9$DWW#6>WPXW8[HCRA<
M8[7[I0Z:S3;OU/8(%;WE.(PVZ*:%1LQNP$0S3#@AD%*?4D2N%+MH0;<2%$L$
M#A\A^R7D2^ V$3OKC T_?D@1NP6P4P ; ?P@@*V-&C"IP;0&DZ86IEABPCB(
MK6J7()RYS29.LXG#;&*9'3#)W$B46*!B"8IQ:KMU@%;9RNTW=?I-':>3N@4R
MIT#F*#BS"LX6FQJ%5BF%"[.RREUB5HGE%<VN7P/\8EJ;\$IV;:7^BF?1J7L^
M1_KZ6O&=ZJI#$_R0&5KR3\(O=2N\(Y.J.9@K?&9,@G(8/*FSJ-1?8%I0.$L]
MS=2<#[UP6$C6C6T>3?^:_#]02P,$%     @ XT5M4-F#H;?/ 0  (00  !D
M  !X;"]W;W)K<VAE971S+W-H965T-34N>&UL?53;;MLP#/T50>^K?$FS+K -
M-!F&#=B H,.V9\6F;:&Z>)(<=W\_75S73;.]6"1U#LDC42XFI1]-#V#1D^#2
ME+BW=M@18NH>!#4W:@#I=EJE!;7.U1TQ@P;:!)+@)$N2+1&425P5(7;45:%&
MRYF$HT9F%(+J/WO@:BIQBI\##ZSKK0^0JAAH!]_!_AB.VGEDR=(P =(P)9&&
MML3WZ>Z0>WP _&0PF96-O)*34H_>^=*4./$- 8?:^@S4+6<X .<^D6OC]YP3
M+R4]<6T_9_\4M#LM)VK@H/@OUMB^Q'<8-=#2D=L'-7V&6<\M1K/XKW &[N"^
M$U>C5MR$+ZI'8Y68L[A6!'V**Y-AG>+.=C/3KA.RF9 MA'3[7T(^$_(70JA
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
M]/6QAUQRKD"7Z&]T)]3ZG9@""J4RO_I>(^&ZQ06*=^-#@*?7*/L/4$L#!!0
M   ( .-%;5#EV+\@IP(  &D*   9    >&PO=V]R:W-H965T<R]S:&5E=#4Y
M+GAM;(V6VXZ;,!"&7P5QWP5C3HF22$VJJI5::;75MM=.X@2T@*GMA.W;UP:"
MP!ZRN0';_#/^QH/'7C6,OXF,4NF\ET4EUFXF9;WT/''(:$G$$ZMII;Z<&"^)
M5%U^]D3-*3FV1F7A!;X?>R7)*W>S:L>>^6;%+K+(*_K,'7$I2\+_;6G!FK6+
MW-O 2W[.I![P-JN:G.DO*E_K9ZYZWN#EF)>T$CFK'$Y/:_<S6NY0K U:Q>^<
M-F+4=G0H>\;>=.?[<>WZFH@6]""U"Z)>5[JC1:$]*8Z_O5-WF%,;CMLW[U_;
MX%4P>R+HCA5_\J/,UF[J.D=Z(I="OK#F&^T#BERGC_X'O=)"R36)FN/ "M$^
MG<-%2%;V7A1*2=Z[=UZU[Z;W?S.##8+>(!@,4'C7 /<&V##P.K(VU"]$DLV*
ML\;A7;9JHG\*M,1J,0]ZL%V[]IN*5JC1ZR;$_LJ[:D>]9MMI@I$FF"IVMB)$
M@\13  -% %($K7TXH4 &1:>)6TW546"<A@;)1ZH)# 9A, !C!+SM--%HFD]!
MZ"\,&$"%4!3 ,"$($P(PV( )K6D"?Y%$!@R@"@(\ Q.!,!$ ,[.T,>@@?B#/
ML<6)X\2(Y;YF I* (,D#.4[L["7&UM@!FE%Z)B I")(^D-_4SMS"7!%;@^=2
MLP!!%@!(!#M /EQ*_ >RVXO&H&%LE9/[HBG,3%U##V2X%TTW:&(N+:1*YY8&
MKF\(*G!FFGO1),^IN8L!$4YF?GT$US<$%;AXQ@5<E1!4EJQ40Q4GBJR(/I)-
M@>#*A*#29*4[ JHVLO\^0(;\N=V$X$J'H%)G93RV3RL?+[ )!,C4,6*>L-[H
MS->7L)^$G_-*.'LFU?6A/>1/C$FJ7/I/*KI,W?N&3D%/4C<3U>;=Y:?K2%;W
M%SMON%UN_@-02P,$%     @ XT5M4&GF'O3N 0  @ 4  !D   !X;"]W;W)K
M<VAE971S+W-H965T-C N>&ULE93=CILP$(5?!?D!UN#PMQ$@-5M5K=1*T5;=
M7CLP!+0&4]L)V[>O;0C*@BNU-]ACSIQOQF!G(Q>OL@%0WEO'>IFC1JEAC[$L
M&^BH?. #]/I-S45'E0[%&<M! *UL4L<P\?T8=[3M49'9M:,H,GY1K.WA*#QY
MZ3HJ?A^ \3%' ;HM/+?G1ID%7&0#/<-W4#^&H] 17ERJMH->MKSW!-0Y^A#L
M#ZG16\%+"Z.\FWNFDQ/GKR;X4N7(-P4!@U(9!ZJ'*SP!8\9(E_%K]D0+TB3>
MSV_NGVSONI<3E?#$V<^V4DV.4N154-,+4\]\_ QS/Q'RYN:_PA68EIM*-*/D
M3-JG5UZDXMWLHDOIZ-LTMKT=Q]G_EN9.(',"61+(U,L$LI5_I(H6F>"C)Z:]
M'ZCYQ,&>Z+TIS:+="OM.%R_UZK4(=TF&K\9HUAPF#7FG21<-UOX+A#@AQ!J$
M[PP>5Y!)$UM-;S4!B1(W9>>D[+:4T%]1)DWT3Y3020D=E&!%"?^#$CDID8-"
M5I1H2PD2XJ;$3DKLH.Q6E-A!B4,W)7%2$@<E7%&2+25,X[_\9*D3DVXPNM 5
M)MW\9,1_3*(5!M\='G,W?:/BW/;2.W&ESZ$]+37G"K2C_Z!K;O1UN 0,:F6F
MB9Z+Z5*8 L6'^;[#RZ5;_ %02P,$%     @ XT5M4%GH8<+C 0  F00  !D
M  !X;"]W;W)K<VAE971S+W-H965T-C$N>&UL?53;;J,P$/T5BP^(N27;1H#4
M)%IUI5TIZFJ[SPX,%]47:IO0_?NU#:&$1'W!GN&<XSFVQTDOY)NJ 33Z8)2K
MU*NU;K<8J[P&1M1*M,#-GU)(1K0)9855*X$4CL0H#GU_@QEIN)<E+G>462(Z
M31L.1XE4QQB1_W9 19]Z@7=)O#15K6T"9TE+*O@-^D][E";"DTK1,."J$1Q)
M*%/O*=@>(HMW@-<&>C6;(^OD),2;#7X4J>?;@H!"KJT",<,9]D"I%3)EO(^:
MWK2D)<[G%_7OSKOQ<B(*]H+^;0I=I]Z#APHH24?UB^B?8?2S]M!H_B><@1JX
MK<2LD0NJW!?EG=*"C2JF%$8^AK'A;NQ'_0OM/B$<">%$"#9?$J*1$'T2XB\)
M\4B(%P0\6'%[<R":9(D4/9+#Z;;$7J)@&YO=SVW2;;;[9[9'F>PYB^-U@L]6
M:,3L!DPXPP03 AOU:8GPWA*[\(8>7B^POT7$P37D< MY].\7$=WU&3E^?.5S
ML_ Y8!X<ACO,9O6X*/4>9J%SN,6L5]&B6#P[( :R<I=?H5QT7%N?L^S47T^A
M/>!%?F?Z;FB33YFA:7\1635<H9/0YOJX0RZ%T&!*]%>F$VKS3DP!A5+;Z3<S
MET.W#($6[?@0X.DUROX#4$L#!!0    ( .-%;5 1)+NN7@(  &H(   9
M>&PO=V]R:W-H965T<R]S:&5E=#8R+GAM;(U6VXZ;,!3\%<0'K#&8VXH@=5-5
MK=1*T59MGYW$"6@!4]L)V[^O;0@B<%#V);XP,\S8YCA9Q\6;+!A3SGM=-7+C
M%DJUSPC)0\%J*I]XRQK]Y,1%394>BC.2K6#T:$EUA7S/BU!-R\;-,SNW$WG&
M+ZHJ&[83CKS4-17_7EC%NXV+W=O$:WDNE)E >=;2,_O)U*]V)_0(C2K'LF:-
M+'GC"';:N)_P\Q830["(WR7KY*3OF"A[SM_,X-MQXWK&$:O801D)JILKV[*J
M,DK:Q]]!U!W?:8C3_DW]BPVOP^RI9%M>_2F/JMBXB>L<V8E>*O7*NZ]L"!2Z
MSI#^.[NR2L.-$_V. Z^D_74.%ZEX/:AH*S5][]NRL6TWZ-]H,,$?"/Y(Z!=G
ME1 ,A&!&0+TS&_4S533/!.\<T>]62\VAP,^!7LR#F;1K9Y_IM%+/7G-"X@Q=
MC=" >>DQ_@3CWR.V2P3!(P1I Z,+'W3A6SZ9\M.9B1X264AC(1A'7C*#;2$8
MCN,4=A. ;H*E&Y+  @04((_C])!PXC/ *9Z%>0"Z<Q*"3D(@RLI:1*! ]#A*
MM'09AM[\B$ HG,2PEQCT$B^]A!XLD( "R>,PR=*FY\^S+$%^0@+820HZ28$H
M*QN+/?C#]1Z'&3!3HU%$@F3^]0(PGY"5I<4KA00#D?P5";@*X ^4@0%SYY5@
M,D^T1,48KQQ\#%<!#)2!<&63,5P'\ <*P8"YJUCAXL0!J#2=YT&3HF]NX1]4
MG,M&.GNN]/UAJ_R)<\6TH/>DUZ;0%_\XJ-A)F6ZL^Z*__?J!XNUPLZ/Q[T7^
M'U!+ P04    " #C16U0^"3/V]<"   !#   &0   'AL+W=O<FMS:&5E=',O
M<VAE970V,RYX;6R-EN%NFS 4A5\%\0 #&XQ)E41:&TV;M$E5IVV_W<1)4 $S
M<)+N[6<#10D^KMH?!9-SS[W7^#->7E3[TAVEU,%K5=;=*CQJW=Q%4;<]RDIT
MGU0C:_/+7K65T&;8'J*N::78]4%5&=$XSJ)*%'6X7O;/'MOU4IUT6=3RL0VZ
M4U6)]M^]+-5E%9+P[<%3<3AJ^R!:+QMQD#^E_M4\MF8432Z[HI)U5Z@Z:.5^
M%7XF=QO*;$"O^%W(2W=U']A6GI5ZL8-ONU48VXID*;?:6@AS.<L'69;6R=3Q
M=S0-IYPV\/K^S?U+W[QIYEET\D&5?XJ=/J["/ QV<B].I7Y2EZ]R;(B%P=C]
M=WF6I9';2DR.K2J[_G^P/75:5:.+*:42K\.UJ/OK9?1_"\,!= R@4P!)WPU(
MQH#DHP'I&)#. J*AE7YN-D*+];)5EZ =7F\C["HB=ZF9_:U]V$]V_YN9GLX\
M/:]3EBZCLS4:-?>#AMYHV*WFP=706\4&N)!)$IDBITHIK)3V\>E-%1DV2*!!
M @SXK-5!D_6:>F@C'OYF_;I"DM*<<4)Q22DL*04EY;.27$W"/$D83,) DL4L
MB:M).,=),I@D<Y-D,3;@T( # S*;]$'#KB8]R7/GW6RX\VZR]%IU4TT.J\E!
M-9Y)7T"#!3!(9NTLG#H3RKR%DA@#'(-,J<?"LP<08,'FFP 2>?@CF& "$,X\
MJXQ@A@F .)L30UPX^9SBVV283@+PS!;SC0^(N"\/!I0 0CF9-\4\37E284P)
MX)1[%C;!H!)$JK-:@(@GGCP800(8Y+Z%C2$DB$*G5"#BS/-EP@Q2P"#WL$$Q
M@_0C#"*1;YNFGJ\H8)#G'@O,( 4,\OD'A;H,LG<9I)A!"O#*?188+PKP<O8,
MZN+E?/F'9-'5T<H>CG^(]E#47?"LM#FE]6>IO5):&M?XDW$]FO/X-"CE7MM;
M;N[;X5 Z#+1JQ@-W-)WZU_\!4$L#!!0    ( .-%;5"D?7[#"@(  #@&   9
M    >&PO=V]R:W-H965T<R]S:&5E=#8T+GAM;(V5VXZ;,!1%?P7QWC&8JR*"
MU*2J6JF5HJG:/CMP$M 83&TG3/^^MF$H@]UJ7N+;/MMK&W"*D?$GT0!([[FC
MO=C[C93##B%1-= 1\< &Z-7*A?&.2#7D5R0&#J0V11U%. A2U)&V]\O"S)UX
M6;";I&T/)^Z)6]<1_OL E(U[/_1?)A[;:R/U!"J+@5SA&\COPXFK$5I<ZK:#
M7K2L]SA<]O[[<'?,M=X(?K0PBE7?TTG.C#WIP>=Z[P<:""A44CL0U=SA")1J
M(X7Q:_;TERUUX;K_XO[19%=9SD3 D=&?;2V;O9_[7@T7<J/RD8V?8,Z3^-X<
M_@O<@2JY)E%[5(P*\^M5-R%9-[LHE(X\3VW;FW:<5K)X+G,7X+D +P7A_PNB
MN2#:%*")S$3]0"0I"\Y&CT\/:R#ZG0AWD3K,2D^:LS-K*JU0L_<RSL,"W;71
MK#E,&KS2X->*HZV(_YH@!;!08"<%-O7Q*XK-'@=;D\8;C$F2&DD_@29A'+E)
M(B=)Y"")-B2VQB*9),F*Y!W.D\Q-$CM)8GN7= /BD&Q!8@L$8YRG;I#$"9(X
MCB1V&Z1.@_0-3]?66%%2*TJ8_?/I9DZ2S$&2N URIT'^ABBVQHJ26R]J'@3!
M!@2MOF%]IWXE_-KVPCLSJ:X#\]%>&).@#(,'=2R-NL:7 86+U-U,]?ETF4T#
MR8;YGD;+GT7Y!U!+ P04    " #C16U0$LED/0("  "\!0  &0   'AL+W=O
M<FMS:&5E=',O<VAE970V-2YX;6Q]E.&.FS ,QU\%\0 7($!I!4B[3M,F;5)U
MT[;/*;@%72 L2<OM[9<$BKB0[0N)S=_VSX0X'QE_%0V ]-XZVHO";Z0<#@B)
MJH&.B"<V0*_>7!COB%0FOR(Q<""U">HHBH(@11UI>[_,C>_$RYS=)&U[.'%/
MW+J.\#_/0-E8^*'_<+RTUT9J!RKS@5SA.\@?PXDK"RU9ZK:#7K2L]SA<"O]#
M>#BF6F\$/UL8Q6KOZ4[.C+UJXTM=^($& @J5U!F(6NYP!$IU(H7Q>\[I+R5U
MX'K_R/[)]*YZ.1,!1T9_M;5L"C_SO1HNY$;E"QL_P]Q/XGMS\U_A#E3)-8FJ
M43$JS-.K;D*R;LZB4#KR-JUM;]9QSO\(<P=$<T"T!(3Q?P/P'("M #21F58_
M$DG*G+/1X]-A#43_$^$!JX]9::?Y=N:=ZE8H[[V,LS1'=YUHUCQ/FFBEB=XK
MCEM%'"X2I  6BLA)$9GX^!W%SJ*8-*G1]$:#]VEH@3A$21RY4; 3!3M0,@ME
MTB2K*F& L87B$(4)=J/$3I38@;*W4.)M%1PF%HI#I%1NE,2)DFQ1]H&%DFRJ
M1.$NME <HA3_XX!2)TJZ04EMDG3S%V1Q9I^/2Y1D%@E:W2,]U[X1?FU[X9V9
M5%?27)P+8Q)4PN!)==6H4;H8%"Y2;W=JSZ>!,AF2#?.L1,O +O\"4$L#!!0
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
M_@!U4$I+DS)\,M6=S)EZ&I3RH.TM-_?M<+ <!EHUXZ$YF$[NZ_]02P,$%
M  @ XT5M4"9>%,OI @  R@P  !D   !X;"]W;W)K<VAE971S+W-H965T-CDN
M>&ULC9=M;YLP$,>_"N(#%,QCJ))((6C:I$V*.JU[[29.@@J8V4[2??O90&ER
M/K*^"=C\[OP_Y_ =\PL7K_+(F'+>ZJJ1"_>H5/OH>7)[9#65#[QEC7ZRYZ*F
M2@_%P9.M8'37&=65%_A^XM6T;-SEO)O;B.6<GU15-FPC''FJ:RK^YJSBEX5+
MW/>)I_)P5&;"6\Y;>F _F?K5;H0>>:.775FS1I:\<03;+]P5>2Q(; PZXKED
M%WEU[YA07CA_-8-ONX7K&T6L8EME7%!].;,UJRKC2>OX,SAUQS6-X?7]N_<O
M7? ZF!<JV9I7O\N=.B[<F>OLV)Z>*O7$+U_9$%#L.D/TW]F951HW2O0:6U[)
M[M?9GJ3B]>!%2ZGI6W\MF^YZZ9\DT6"&&P2#03 :D.2N03@8A!\&]U>(!H,(
M&'A]*-W>%%31Y5SPBR/ZO[>E)HO(8Z1W?VLFN\WNGNGMD7KVO(R#9.Z=C:.!
MR7LFN&+(2'C:^[A$@"V1!Y9Y<+O VB8B<HL4-I+YN(@0C3/L[*.;.%,0I\U$
M&=B+]2>8 F-27&R$BHT0L3,@%F,R(-9FHM0'8A$_X<3.QJC8&'$ _KT<8V 2
M?((I,";$Q2:HV 1Q$ &Q&!,#L1@#TP!C)M(@1<6FB .8!C:3@'C6_T<*;*4,
MESI#I<YL!Q'(M-QF+*F8&W@2W&=NM&:HU@QQ !(MQY@0B+49:U_O(C=2B8\?
MSSXB!"8L"D&U* 32ND"A9$+Q1$$AB MXTJ+0#"K&H PJMJ')+4;+TXH$]C(Q
MS%T$LI+W$TR!+C:1O02O9 0K+Y9>I-[%\,1%H1 J1J"I]XW@Y8P@-2:VDAB!
MX+N_1B![B^\RMWKQBD:0,A/'4"\&P6X!A5(H&(-F0+%WU=#53!RZ9EDZ6WYJ
ME.F+KF;'AGP5F(80S.>F4>\:Q0\W?9?_@XI#V4CGA2O=;G9-X9YSQ;1&_T%K
M/.H/BW%0L;TRMZF^%WUWW0\4;X<O!V_\?%G^ U!+ P04    " #C16U0L)J7
M*O<!   Q!0  &0   'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6Q]5%UOFS 4
M_2N6WU<#@6R+"%*3JMJD38HZ;7MVR$U ]0>S3>C^_?Q!* 76%[ OYYQ[CK&=
M=U(]ZPK H!?.A-[BRIAF0X@N*^!4W\D&A/UREHI38Z?J0G2C@)X\B3.21-&:
M<%H+7.2^=E!%+EO#:@$'A73+.55_=\!DM\4QOA6>ZDME7($4>4,O\ /,S^:@
M[(P,*J>:@]"U%$C!>8OOX\T^<W@/^%5#IT=CY)(<I7QVDZ^G+8Z<(6!0&J=
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
M=><Q7'6^SCH]WAJY/K7]:]R]U^,M?6RTU67Z A'</H-L_P-02P,$%     @
MXT5M4-IZ2J)0 @  9P<  !D   !X;"]W;W)K<VAE971S+W-H965T-S0N>&UL
MC57;CILP%/P5Q >LN=@$5@1I$U2U4BM%6[5]=H@3T!I,;2=L_[ZV(2P!;Y27
M8)_,C&=L.$X[QM]$28ATWFO:B+5;2MD^ R"*DM18/+&6-.J?(^,UEFK*3T"T
MG."#(=44!)X7@1I7C9NEIK;C6<K.DE8-V7%'G.L:\W\;0EFW=GWW6GBM3J74
M!9"E+3Z1GT3^:G=<S<"H<JAJTHB*-0XGQ[7[XC_GB<8;P.^*=&(R=G22/6-O
M>O+ML'8];8A04DBM@-7C0K:$4BVD;/P=--UQ24V<CJ_J7TQVE66/!=DR^J<Z
MR'+MQJYS($=\IO*5=5_)D >YSA#^.[D0JN#:B5JC8%287Z<X"\GJ0459J?%[
M_ZP:\^P&_2O-3@@&0C 2_.@N(1P(X0<!WB7 @0!G!-!',7N38XFSE+/.X?WI
MMEB_1/XS5+M?Z*+9;/.?VAZAJI<,)2@%%RTT8#8])IA@_!$!E/JX1&!;8A,L
MZ,'M MLE OJWD'P)23R[B=":,S1\..&'43++V6,B@VGZG"B9&=E:0($_"Y1;
M0%X4V_U"JU^X\(N2R"Z K +H@< ]!DUL0L^;Y5UBD#=[0?+[F!NSD=5LM$R[
M@G:!E55@]4#:U<*EC^:G:\' F4YNP82?G&UL-1LOT\:??%&)52!Y(&UB>07A
M_'"7((3B6=PE!@;SPP63=E,3?C*M7#@%.S=2?[63ZGA;O 2Z7<WJ&W6+]$W_
M0Z:_@GY@?JH:X>R95,W0M*PC8Y(HB]Z3.HQ2W7KCA)*CU,.5&O.^]_<3R=KA
M6@/CW9K]!U!+ P04    " #C16U0/M _,<L"  ")"@  &0   'AL+W=O<FMS
M:&5E=',O<VAE970W-2YX;6R-EE%OFS 0Q[\*XGW@,V"@2B(UG:9-VJ2JT[9G
M-W$25, ,.TGW[6<,80D^NKX$[-S=[P[[_KK%6;8OZB"$]EZKLE9+_Z!U<Q>&
M:G,0%5>!;$1M_MG)MN+:+-M]J)I6\*UUJLJ0$L+"BA>UOUK8O<=VM9!'71:U
M>&P]=:PJWOY9BU*>ES[XEXVG8G_0W4:X6C1\+[X+_:-Y;,TJ'*-LBTK4JI"U
MUXK=TK^'NS4EG8.U^%F(L[IZ][I2GJ5\Z19?MDN?=!F)4FQT%X*;QTD\B++L
M(ID\?@]!_9'9.5Z_7Z)_LL6;8IZY$@^R_%5L]6'I9[ZW%3M^+/63/'\60T&)
M[PW5?Q4G41KS+A/#V,A2V5]O<U1:5D,4DTK%7_MG4=OG>8A_<<,=Z.! 1X<H
MM;7T()OY1Z[Y:M'*L]?V'[_AW1G#'37?9M-MVD]A_S/)*[-[6B5YN@A/7:#!
M9MW;T"L;&"U"$WU$4 RQIHY[DF=X@ C-,;(!XIL ^23'WB:Q-G6?8Q23.,(Y
M,<J)'0XC9,+I;=(K#B5!S'!,@F(2! ,33.*6PY)H!L-0#$,P=()A3C51%K"9
MTTU13(I@H@DF=:KY$,<Y2W!.AG(RA!-/.)E3#B0!F[EK.8K)WW'7<O=P2,(@
MQCE \,8C[[AM@]'-=4N":(XTT^* D)(I"3.:N6^ ]OD]4"2$HR6]$;NIB,VT
M*>!Z *X@,))-0:XB9$E$9RX#X(H F"1,KP,@FD #1F=(N"@ H@K@7 ?,:*9;
M 5<%0&0!IK(P&-T<4D3F#@G7!4"$ :;" *XRO-E*N#0 H@TPU09PQ>&M5L+5
M 5QY8."T$F(TUTH4%P>*B .P"6<P^D\KA5>30"7:O9V!E+>1Q]H.8%>[XYQU
M3^TD\<^\']*^\79?U,I[EMK,(W9JV$FIA4F&!.8,#V8N'!>EV.GN-37O;3\<
M]0LMFV'P"\?I<_474$L#!!0    ( .-%;5#'_E"+4 (  #\'   9    >&PO
M=V]R:W-H965T<R]S:&5E=#<V+GAM;(V5VXZ;,!"&7P5QWQB;<T20DJVJ5FJE
M:*MMKYW$"6@!4]L)V[>O;0AE82+M#=CFG_EF;,:3=5R\RH(QY;S552,W;J%4
MNT9('@M64[GB+6OTES,7-55Z*BY(MH+1DS6J*T0\+T(U+1LWS^S:7N09OZJJ
M;-A>./):UU3\W;&*=QL7N_>%Y_)2*+. \JRE%_:3J9=V+_0,C5Y.9<T:6?+&
M$>R\<;=XO</$&%C%KY)U<C)V3"H'SE_-Y-MIXWHF(E:QHS(NJ'[=V!.K*N-)
MQ_%G<.J.3&,X'=^]?[')ZV0.5+(G7OTN3ZK8N(GKG-B97BOUS+NO;$@H=)TA
M^^_LQBHM-Y%HQI%7TCZ=XU4J7@]>="@U?>O?96/?W>#_;@8;D,& C :^-4 ]
MR$;^F2J:9X)WCN@WOZ7FC/&:Z+TYFD6[%?:;#E[JU5L>X3A#-^-HT.QZ#9EH
M\*A VON((!!B1Q;F$4Y@!SX8HV\=!.\<I+,8>TUH-8W5Q"1-(Q@3@)A@B2'>
M#--KX@F&^*L'E!"DA  %SRCA(IDHB+T'FQZ!F C D!DF6B3C^ZLPA#$QB(D!
MC#_#Q(ML/A$O)"G,24!. G""&2>!SB8.8$P*8E( $\XPZ3(=W_<(C,$>7'4>
M (KF9>=!Y^,_^ WP@_K&'RB>033-"6,_B1[\V!BL\RTF'RB@0?3NE)*5/R>A
MR?U5,W&Q-[=TCOS:V+8Q61V[P]8V!_1?WK>6'U1<RD8Z!Z[T+6KONC/GBNEH
MO)5.N=#=;)Q4[*S,,-9CT5_I_43Q=FA7:.R9^3]02P,$%     @ XT5M4,%N
M^2EM @  .@D  !D   !X;"]W;W)K<VAE971S+W-H965T-S<N>&ULC9;=CILP
M$(5?!?$ "^/PNR*1FJVJ5FJE:*NVUT[B)&@-IK:3;-^^MB$HBP<I-P$[X_/-
MP!SLZBKDFSHQIH/WAK=J&9ZT[IZC2.U.K*'J272L-?\<A&RH-D-YC%0G&=V[
M10V/2!QG44/K-EQ5;FXC5Y4X:UZW;",#=6X:*O^M&1?790CA;>*U/IZTG8A6
M54>/["?3O[J--*-H5-G7#6M5+=I LL,R_ 3/:RCL A?QNV97=7<?V%*V0KS9
MP;?],HQM1HRSG;82U%PN[(5Q;I5,'G\'T7!DVH7W]S?U+ZYX4\R6*O8B^)]Z
MKT_+L B#/3O0,]>OXOJ5#06E83!4_YU=&#?A-A/#V FNW&^P.RLMFD'%I-+0
M]_Y:M^YZ'?1OR_ %9%A Q@6DKZ4'N<P_4TU7E1370/8/OZ/V'<,S,<]F9R?=
MHW#_F>25F;VL,I)7T<4*#3'K/H;<Q22+8HR)C/X((2B$.('D@T Y@?0QF8MI
M70P I#AE@5(6/B6))Y0^)KVCY$F&0Q(4DB 0F$ 2#Y+$)0Y)44B*0,@$DOJ0
MF7>2H8S,8P!D$T;F,<@"9B@Y2LD]2IHGN$"!"A0/M$[AI7E?R@=(B4+*!SK'
MC\EF"H$8=UK\0.L@0;.8&4/# \V#!,UB<$N#[VF_?X:@A]X,X*8&W]5I 3,2
MN&4!\:S70^";MBQG3 NX:P&S[;2-P/?M[!<(<.>";UVDD7SOSGZ$ /<N^.9%
M.BE_^#L$N,/!MSC2286W/1 2DPDHNMOU[*GB!Y7'NE7!5FBS@;IM[B"$9D8Q
M?C(IG\Q!9AQP=M#V-C?WLM_-^X$6W7!2B<;CTNH_4$L#!!0    ( .-%;5![
M<RAP2P(  $X'   9    >&PO=V]R:W-H965T<R]S:&5E=#<X+GAM;(U5[8[:
M,!!\E2@/<,XW!(5(%Z!JI59"5[7];<)"HG/BU#9P??O:3LB%Q-SQ!]N;F9U9
MVZR3"V6OO  0UEM%:KZT"R&:!4(\+Z#"_(DV4,LO!\HJ+.22'1%O&."])E4$
M>8X3H0J7M9TF.K9E:4)/@I0U;)G%3U6%V;\,"+TL;=>^!E[*8R%4 *5)@X_P
M$\2O9LOD"O59]F4%-2]I;3$X+.UG=[&)%5X#?I=PX8.YI2K94?JJ%M_V2]M1
MAH! +E0&+(<SK( 0E4C:^-OEM'M)11S.K]F_Z-IE+3O,847)GW(OBJ4]MZT]
M'/")B!=Z^0I=/:%M=<5_AS,0"5=.I$9."=>_5G[B@E9=%FFEPF_M6-9ZO+1?
MHBO-3/ Z@M<3W.A#@M\1_'="\"$AZ C!HX2P(X0C FIKUYNYQ@*G":,7B[77
MH<'JUKF+4!Y7KH+Z=/0WN9]<1L]IY,T3=%:).DS68KP!QNT12&;O)3R31.9-
MZ-ZMP&J*"-Q;R'H*B9U;R&8*B;S8;-0W[H6O$P3#!/Y()&LQD<;4&N,[?C"J
M9PIRS#X"HX_ X&.T'UF+"6]\Q'=40J-*:% 9'<PF?+20R"@1&23\42'11,*5
M76ZTH8^ UE-0[-RQ.S/:G1GL!N8$<V."^><7:#.?'%S@W+,9&U7BSZ_')I[L
M1>!.5-"@253 CKIC<RNGIUJH/](@VC\*SYYJ,J-XYB[6;6]_3].^-#\P.Y8U
MMW94R!:F&\V!4@'2H_,D-Z&0CUN_(' 0:CJ3<]:V^'8A:-.]7JA_0M/_4$L#
M!!0    ( .-%;5 *TF)K&P(  #@&   9    >&PO=V]R:W-H965T<R]S:&5E
M=#<Y+GAM;'65VXZ;,!"&7P7Q  N88R*"M-FJ:J56BK9J>^V024!K,+6=L'W[
M^L!2ELS>Q ?^^;\96YZ4(Q<OL@%0WFO'>KGS&Z6&;1#(NH&.R@<^0*^_G+GH
MJ-)+<0GD((">;%#' A*&6=#1MO>KTNX=1%7RJV)M#P?AR6O74?%W#XR/.S_R
MWS:>VTNCS$90E0.]P ]0/X>#T*M@=CFU'?2RY;TGX+SS'Z/M/@I-@%7\:F&4
MB[EG2CER_F(67T\[/S09 8-:&0NJAQL\ 6/&2>?Q9S+U9Z8)7,[?W#_;XG4Q
M1RKAB;/?[4DU.[_PO1.<Z96I9SY^@:F@U/>FZK_!#9B6FTPTH^9,VE^OODK%
MN\E%I]+15S>VO1U']R4OIC \@$P!9 X@KA8'LIE_HHI6I>"C)]SA#]3<<;0E
M^FQJLVF/PG[3R4N]>ZNR."V#FS&:-'NG(0M--"L"[3XC"(;8D[OP)"YP@QC-
M,;8&\;L<,]P@00T2:Y"\,\A713I-9C6]*Y(0@E-2E)(BE&)%<9IT02'1!H=D
M*"1#()L5)+N'Y#@C1QGY/2,)5XS\CA$EV0>W6J"4 J%$*TJ!7$KX 66#4C8(
MA:PHF";&(;H!H:\H1"R2]3/"1.F*$RP>;@?B8EN6]&I^[6V_7.S.;?&1V(?_
M7^YZZG<J+FTOO2-7NGW81W[F7('.)7S0-]?H-CXO&)R5F>9Z+EPO<PO%AZE/
M!_.?1?4/4$L#!!0    ( .-%;5 E9XH<$ (  $<&   9    >&PO=V]R:W-H
M965T<R]S:&5E=#@P+GAM;'65VXZ;,!"&7P5QWS7G0T20-KNJ6JF5HJVVO7:2
M24!K,+6=L'W[VH9%+$QNXM,__S?CR$/1<_$F*P#EO#>LE5NW4JK;$"*/%314
M/O .6GURYJ*A2B_%A<A. #W9H(:1P/,2TM"Z=<O"[NU%6?"K8G4+>^'(:]-0
M\6\'C/=;UW<_-E[J2Z7,!BF+CE[@%ZC7;B_TBDPNI[J!5M:\=02<M^ZCO]GY
MG@FPBM\U]'(V=TPI!\[?S.+[:>MZ)B-@<%3&@NKA!D_ F''2>?P=3=V):0+G
M\P_WK[9X7<R!2GCB[$]]4M76S5SG!&=Z9>J%]]]@+"AVG;'Z'W #IN4F$\TX
M<B;MKW.\2L6;T46GTM#W8:Q;._;#29J,87A , 8$4T PU#* ;.;/5-&R$+QW
MQ'#Y'37_L;\)]-T<S::]"GNFDY=Z]U8F45*0FS$:-;M!$\PT49A-&J+])TB
M0@)K$'TRR!>009-836LUOI^&."5$*>&:$GD+RJ")/U'\.[5$*"5"*/Z"$JTH
M>9SBD!B%Q @D6$#B%21,<$:",A*$$2X8:TT2X8P49:0((UHPUII[C QE9$A\
MNF!DZ[L*LCN4'*7D""5;4/(5Y8N?WZ'H3H8^1P_A+)_**)J_E=#+O06(S%J
M:;$_J;C4K70.7.EN8M_\F7,%VM%[T$E7NJM/"P9G9::IGHNAM0T+Q;NQ;9/I
MVU'^!U!+ P04    " #C16U0NDQ0U^(!   4!0  &0   'AL+W=O<FMS:&5E
M=',O<VAE970X,2YX;6QUE.UNFS 4AF\%^0)JOFDB0%HZ39VT2E&G;;\=. 14
M&U/;"=W=SS8$I>#]P?;A/>]SCL'.1R[>9 N@O ]&>UF@5JEAC[&L6F!$/O !
M>OVFX8(1I9?BC.4@@-0VB5$<^GZ*&>EZ5.8V=A1ESB^*=CT<A2<OC!'Q]P"4
MCP4*T"WPVIU;90*XS =RAI^@?@U'H5=X<:D[!KWL>.\): KT)=@?,J.W@M\=
MC/)N[IE.3IR_F<7WND"^*0@H5,HX$#U<X0DH-4:ZC/?9$RU(DW@_O[E_L[WK
M7DY$PA.G?[I:M05Z1%X-#;E0]<K'9YC[29 W-_\#KD"UW%2B&16GTCZ]ZB(5
M9[.++H61CVGL>CN.L_\MS9T0S@GADA!.O4P@6_E7HDB9"SYZ8MK[@9A/'.Q#
MO3>5"=JML.]T\5)'KV6:^#F^&J-9<Y@TX2=-L&BP]E\@H1,26H/XSB"*5XQ)
MDEI);R6!_S](Y(1$&T@<[5:429-\HF2^FQ([*?&6$J_W*W90TLA-29R4Q$$)
M5I1D0]EEB1N2.B&I Q*N(.D&$J5N1N9D9!M&$*0K1K;Y]'&P6W>"[WYH<U^\
M$''N>NF=N-)GP_[!#><*M*'_H.MM]16U+"@TRDPS/1?309T6B@_S'827B[#\
M!U!+ P04    " #C16U0\<,C8" "   6!@  &0   'AL+W=O<FMS:&5E=',O
M<VAE970X,BYX;6Q]5>V.FS 0?!7$ YS!&))&!.F2J&JE5HJN:OO;(9N SF!J
M.^'Z]O4'QW'@WI_87F9V9A>\R7LNGF4%H(*7AK5R&U9*=1N$9%E!0^4#[Z#5
M3RY<-%3IH[@BV0F@9TMJ&,)1E*&&UFU8Y#9V%$7.;XK5+1Q%(&]-0\7?'3#>
M;\,X? T\U==*F0 J\HY>X0>HG]U1Z!,:LYSK!EI9\S80<-F&C_'FD!F\!?RJ
MH9>3?6 J.7'^; Y?S]LP,H: 0:E,!JJ7.^R!,9-(V_@SY Q'24.<[E^S?[:U
MZUI.5,*>L]_U657;<!T&9[C0&U-/O/\"0SUI& S%?X,[, TW3K1&R9FTOT%Y
MDXHW0Q9MI:$O;JU;N_;NR2H;:'X"'@AX),0?$Y*!D+P1R(<$,A#(C(!<*;8W
M!ZIHD0O>!\*]W8Z:CRC>$-W]T@1ML^TSW1ZIH_<B2W&.[B;1@-DY#)Y@XA&!
M=/91 OLD=GA!GPGLEP@2OX<<EI!/D=]$XJTSL7SRKLYD5J?#9!;3NCJC*)IY
M]8#B.>BP!*VC_]@E7KO$8Y?,[#I,.A'!./6+I%Z1U".2SD32I<AJO9[UQ .*
M"/%;R;Q6,H^5;&8E6S05KQ>OQP.*%JU'D]O1@+C:R2.#DM]:93ZR270<;H_8
MW*Y9?*>'GIM1;VG<Q/Q.Q;5N97#B2M]=>\,NG"O0'J,'W:E*#^GQP."BS':E
M]\*-*G=0O!NF,!K_"HI_4$L#!!0    ( .-%;5"ECN<\FP$  %L#   9
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
M_'.4DB,4;E%RET+!4PO$N+ICA)/9\HX=$!#/HP'/% &$D]L<< M*?>\SX$,
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
M\^MR66Z %AR" SF"2DH3K/,'W'+/]\ T^XGEA9IX70#!N>RU.UUK+'W#+5?
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
MFUIH:T44A!;'+-O+9H^:S,EN;N5AKOAX% [348B7T&D&!A:N^,A_\QYC-*U
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
MQ@]BP>_9MQ_]*%#'RF#8]>PK2J]JC>F( 0?_+:P)3D+5O:L[%=WB[*#Y?8\
M=Z>HDYQAV%-KZNC2]AZN0X:F\B=;J80'#,B.R^H?P96JA_P0?+_-T752M5V+
MGV %9ENQ\"7[6!2P5RK[V'K\3;6:P_1I8E2P[QU!Z<YYAJ=O7C]_]^'L&/]H
M)Z<ZE#"R*^!Q.068Z1A-W]['@\B#D+IOSA=W7 ^=;R^E+)1,6DO'PT?\"N.;
M^LB^\VR+(D(K1>D]V#D%%4AUW7 3=XYOB@TQ%3Q&/' K=#GL&<T77IA'D<,^
MI_S !WG[Q<?]OL8$;AKD$;0:_0VHK7]P>U8N&B3#O\'@CN$7#M$B(*VA6/5\
MJ.?V7!=&!0L5OG6]XU]S0B27$*3I2,E[WH6(>(0NU,)A<-7Q%A:#HXKN'??Q
M6]6/Z. #>3C>/6)=YSA*WCXX!L<S:B,R=+\D(>N_*>KB+CS:BT'Z5-+C#O9
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
M6@+GEH5:]T$04C$.+"%EE)##*(%3RM^=-!#9JZ=] :$3-L.8E%M"#K<$.[E
M0],>=E]#RBOAF;VR@',L.^C2S&8 Z+Z'\F>S"%7%F)1BPC,K!D43IVC=09/3
MK,4<<E8Q[#&&E&-"%L=X4M77$&-2C@DY'./)5>+%9XQ)*2?D4(XO7 VJ&5'*
MB3B4<Q"OH(K]XR\8DA).Q"&<@YQU$I+23<2A&U_@&MYP<J2,PSN^P#7$I+P3
M<7CG,'"=O.>4@"*.8',J>>U(,28EH(@EXPSSU\E:4OJ)6/3C"V("8U+ZB5@B
MCB>)#7\_E'XBEL3SG,1.W>Z8$D_,DG4\(6)0QYA23\R2=0Y#Q,EJ4O*)6;*.
M)TT,JTG))V8)/0=IXF0QR7F:,[N'C!7#8E+RB5E&U7S]]0AC4O*)+SE9\S7&
MF)1^XHNFGP1C4OJ)6?3CPTPQ)J6?F$,_WI!VB^<Z*0DE'!+R85[A/D="22CA
MD) /<] @)92$$@X)>2,O;I 22D()AX2\F+A!2B@+)1P)Z"B9WRHKRZH5>)PC
M(=<+<%CH$/-Y"V-2%DHX+'0XA/#<BF),RD()AX6\@PB#GQ!EH83#0E[,P4^(
MLE#"82$O)G9Z2EDHY;"0=T@&W_24LE#*82$O)K[I*66AE,-"QR-'^X838U(6
M2B^QHL#%==VLKRR>>$XI"Z676ENPVX4Q*0NE%UAA<%J6*;EN[1(#<<\;&).R
M4,J2A8XP;]5*&:.6&).R4,J2A3S5''2+4\I"*<M0W!'F/XWI>_%XM2)EH8QE
M0,XS_CJH9D99*&,9D/-A8EEFE(4RE@$YWS#Q ).R4,8R(.?#Q$[/* ME+*L0
M?)BX(Y=1%LI8+.3#Q(,S&66AC,5"/LP,8Y+KIUDLA*<P?OI</=H.8U(6RIC7
MO.V?B!O=6O$"8U(6RK@GA*#_MEX;M08>,<75S"D+Y2P6&F!..]L9)?YR?UG"
MF)2%<A8+>5;J#6294Q;*62SDFV3#%LHI"^4L%CJ:9-LI?H'7<>64A7(6"_DF
MV0;5I"R4LUCH:)+M1 #.*0OE+!8ZQ+S:_3UAB$E9*&>QT#'FW&@QU09CDG_E
M.;.%Z#G+P7>3LE#>6VC<']R^>;V$%JU1RP]PB1;V%[(JYD:X!W>F((P3MZQ[
MU575#>S[V+S7TNWOS['_G^J;_P!02P,$%     @ XT5M4."O!_VR @   #4
M !H   !X;"]?<F5L<R]W;W)K8F]O:RYX;6PN<F5L<\7:2V[;,!2%X:T86D!H
M7I*7=!%GU$FF:3<@V/0#L25!5)%D]U4]J0HD.AT81Q,+A@7R'WT6J/OXDB_U
M<&Z;<CIW9?5^O31E6YV&H?MF3-F=\K4N#VV7F_&70]M?ZV'\VA]-5^]>ZV,V
MLEZKZ:=K5$^/TS57S_MMU3_O;;7Z6??'/&PK\WXQ;VW_6DXY#\7<+O9AW&"\
MY:/+_[-]>SB<=_E[N_MUS<WP2<7?#2KS>9#,!PD]R,T'.7J0GP_R]* P'Q3H
M03H?I/2@.!\4Z4%I/BC1@S;S01MZD%T#&=?\)(0U7VL+N+9\KRT V_+%MH!L
MRS?; K0M7VT+V+9\MRV V_+EMH!NR[?; KPM7V\!>@M?;P%ZRP+/VNAAFZ^W
M +V%K[< O86OMP"]A:^W +V%K[< O86OMP"]A:^W +V%K[<#>CN^W@[H[?AZ
M.Z"W6^"L!!V6\/5V0&_'U]L!O1U?;P?T=GR]'=#;\?5V0&_'U]L!O1U?;P_T
M]GR]/=#;\_7V0&_/U]L#O?T"9]WHL)NOMP=Z>[[>'NCM^7I[H+?GZ^V!WIZO
MMP=Z>[[> >@=^'H'H'?@ZQV WH&O=P!Z![[> >@=%GA7B5Y6\O4.0._ USL
MO0-?[P#T#GR] ] [\/56H+?R]5:@M_+U5J"W\O56H+?R]5:@M_+U5J"W+C!K
M@H9-^'HKT%OY>BO06_EZ*]!;^7I'H'?DZQV!WI&O=P1Z1[[>$>@=^7I'H'?D
MZQV!WI&O=P1ZQP5F!=&P(%_O"/2.?+TCT#OR]4Y [\37.P&]$U_O!/1.?+T3
MT#OQ]4Y [\37.P&]$U_O!/1.?+T3T#LM,.N-AKWY>B>@=^+KO9GH74YUG_<_
MAO[<',N]2_Y9_,N:"=QE^+CD^V?<5OUR_XG2P[A+-K?/N_]=W%;]$V&F%>7I
M-U!+ P04    " #C16U0D-YNSC\"  !G,P  $P   %M#;VYT96YT7U1Y<&5S
M72YX;6S-V]]NFS 4Q_%7B;B=@H,-ADU-;]K=;I6V%_# 25#X)]OMTK>?0]M)
MJS*I51/I>Q,"QYSS@UB?NUS]?)RL7QSZ;O#K9!?"]$4(7^]L;WPZ3G:(E<WH
M>A/BJ=N*R=1[L[5"KE9:U.,0[!"6X=@CN;ZZM1MSWX7%S=/U8^MU8J:I:VL3
MVG$0#T/SJNGRN6'J;#>O\;MV\I_B@F3Q]1"[^'AMG<2J3\0;)KR^\7@>[_O^
M8)UK&_NN:.-FT]:V&>O[/MZ2^LE9T_B=M:'O4K\SSC8_@FN'[7/>.^/"-]/'
MQN+0B7\6I)?+$1X[>SK 7#GGY!"WA3TU:BX\?68?&OBR&^K1V>7D8M6%]L3C
MQ4AWL>K%<>$Y']$>MTYCFS<-CZTO]\/^'MU^_G[JA?\M>C$?/O;6SY=#0G(H
M2(X<DJ. Y-"0'"4D1P7)\1F2(UM1@E!$S2BD9A13,PJJ&475C,)J1G$UH\":
M4625%%DE159)D5529)44625%5DF155)DE119)45619%54615%%D5159%D551
M9%44615%5D6155%DS2FRYA19<XJL.476G")K3I$UI\B:4V3-*;+F%%D+BJP%
M1=:"(FM!D;6@R%I09"THLA8460N*K 5%5DV155-DU119-45639%54V35%%DU
M159-D5539"TILI8464N*K"5%UI(B:TF1M:3(6E)D+2FREA19*XJL%476BB)K
M19&UHLA:462M*+)6%%DKBJS5!66=CVEOVN%_27Z-X_YEOIC_7W/]!U!+ 0(4
M Q0    ( .-%;5 ?(\\#P    !,"   +              "  0    !?<F5L
M<R\N<F5L<U!+ 0(4 Q0    ( .-%;5 GZ(<.@@   +$    0
M  "  >D   !D;V-0<F]P<R]A<' N>&UL4$L! A0#%     @ XT5M4$%1# 'N
M    *P(  !$              ( !F0$  &1O8U!R;W!S+V-O<F4N>&UL4$L!
M A0#%     @ XT5M4)E<G",0!@  G"<  !,              ( !M@(  'AL
M+W1H96UE+W1H96UE,2YX;6Q02P$"% ,4    " #C16U0ZI_9[-T"  #^"P
M&               @ 'W"   >&PO=V]R:W-H965T<R]S:&5E=#$N>&UL4$L!
M A0#%     @ XT5M4*8YCT>-!   (1<  !@              ( !"@P  'AL
M+W=O<FMS:&5E=',O<VAE970R+GAM;%!+ 0(4 Q0    ( .-%;5"U[S*43P(
M /0'   8              "  <T0  !X;"]W;W)K<VAE971S+W-H965T,RYX
M;6Q02P$"% ,4    " #C16U0MZPA@]<#    $0  &               @ %2
M$P  >&PO=V]R:W-H965T<R]S:&5E=#0N>&UL4$L! A0#%     @ XT5M4$A!
M>O_6!   H1L  !@              ( !7Q<  'AL+W=O<FMS:&5E=',O<VAE
M970U+GAM;%!+ 0(4 Q0    ( .-%;5 #8\,B" 4  (H9   8
M  "  6L<  !X;"]W;W)K<VAE971S+W-H965T-BYX;6Q02P$"% ,4    " #C
M16U0L+RW +<!  #2 P  &               @ &I(0  >&PO=V]R:W-H965T
M<R]S:&5E=#<N>&UL4$L! A0#%     @ XT5M4'%\[%NW 0  T@,  !@
M         ( !EB,  'AL+W=O<FMS:&5E=',O<VAE970X+GAM;%!+ 0(4 Q0
M   ( .-%;5#RB_ZOMP$  -(#   8              "  8,E  !X;"]W;W)K
M<VAE971S+W-H965T.2YX;6Q02P$"% ,4    " #C16U0R, ?C;@!  #2 P
M&0              @ %P)P  >&PO=V]R:W-H965T<R]S:&5E=#$P+GAM;%!+
M 0(4 Q0    ( .-%;5 D#2/-M@$  -(#   9              "  5\I  !X
M;"]W;W)K<VAE971S+W-H965T,3$N>&UL4$L! A0#%     @ XT5M4.DUJMFW
M 0  T@,  !D              ( !3"L  'AL+W=O<FMS:&5E=',O<VAE970Q
M,BYX;6Q02P$"% ,4    " #C16U08DRSXK8!  #2 P  &0
M@ $Z+0  >&PO=V]R:W-H965T<R]S:&5E=#$S+GAM;%!+ 0(4 Q0    ( .-%
M;5"SZ$-2M0$  -(#   9              "  2<O  !X;"]W;W)K<VAE971S
M+W-H965T,30N>&UL4$L! A0#%     @ XT5M4'I1A)^W 0  T@,  !D
M         ( !$S$  'AL+W=O<FMS:&5E=',O<VAE970Q-2YX;6Q02P$"% ,4
M    " #C16U07-.W<[<!  #2 P  &0              @ $!,P  >&PO=V]R
M:W-H965T<R]S:&5E=#$V+GAM;%!+ 0(4 Q0    ( .-%;5"PF(@7M@$  -(#
M   9              "  >\T  !X;"]W;W)K<VAE971S+W-H965T,3<N>&UL
M4$L! A0#%     @ XT5M4(!QNA"V 0  T@,  !D              ( !W#8
M 'AL+W=O<FMS:&5E=',O<VAE970Q."YX;6Q02P$"% ,4    " #C16U0;A?6
MY[@!  #2 P  &0              @ ').   >&PO=V]R:W-H965T<R]S:&5E
M=#$Y+GAM;%!+ 0(4 Q0    ( .-%;5"C,@IGN $  -(#   9
M  "  ;@Z  !X;"]W;W)K<VAE971S+W-H965T,C N>&UL4$L! A0#%     @
MXT5M4,B6STNW 0  T@,  !D              ( !ISP  'AL+W=O<FMS:&5E
M=',O<VAE970R,2YX;6Q02P$"% ,4    " #C16U02B=5H+<!  #2 P  &0
M            @ &5/@  >&PO=V]R:W-H965T<R]S:&5E=#(R+GAM;%!+ 0(4
M Q0    ( .-%;5"0<B#BM@$  -(#   9              "  8-   !X;"]W
M;W)K<VAE971S+W-H965T,C,N>&UL4$L! A0#%     @ XT5M4,RM0[>W 0
MT@,  !D              ( !<$(  'AL+W=O<FMS:&5E=',O<VAE970R-"YX
M;6Q02P$"% ,4    " #C16U0'R:=SK<!  #2 P  &0              @ %>
M1   >&PO=V]R:W-H965T<R]S:&5E=#(U+GAM;%!+ 0(4 Q0    ( .-%;5#U
MC(O;M $  -(#   9              "  4Q&  !X;"]W;W)K<VAE971S+W-H
M965T,C8N>&UL4$L! A0#%     @ XT5M4*02L .D @  % L  !D
M     ( !-T@  'AL+W=O<FMS:&5E=',O<VAE970R-RYX;6Q02P$"% ,4
M" #C16U0-@$N=,T!  "<!   &0              @ $22P  >&PO=V]R:W-H
M965T<R]S:&5E=#(X+GAM;%!+ 0(4 Q0    ( .-%;5!*KH;OQ0$  #<$   9
M              "  19-  !X;"]W;W)K<VAE971S+W-H965T,CDN>&UL4$L!
M A0#%     @ XT5M4%&%/$^W 0  T@,  !D              ( !$D\  'AL
M+W=O<FMS:&5E=',O<VAE970S,"YX;6Q02P$"% ,4    " #C16U0G-N:2+@!
M  #2 P  &0              @ $ 40  >&PO=V]R:W-H965T<R]S:&5E=#,Q
M+GAM;%!+ 0(4 Q0    ( .-%;5"$/0SCMP$  -(#   9              "
M >]2  !X;"]W;W)K<VAE971S+W-H965T,S(N>&UL4$L! A0#%     @ XT5M
M4/./ BK! 0  -P0  !D              ( !W50  'AL+W=O<FMS:&5E=',O
M<VAE970S,RYX;6Q02P$"% ,4    " #C16U0&TX<<;<!  #2 P  &0
M        @ '55@  >&PO=V]R:W-H965T<R]S:&5E=#,T+GAM;%!+ 0(4 Q0
M   ( .-%;5!L5RBCMP$  -(#   9              "  <-8  !X;"]W;W)K
M<VAE971S+W-H965T,S4N>&UL4$L! A0#%     @ XT5M4,;,MAZW 0  T@,
M !D              ( !L5H  'AL+W=O<FMS:&5E=',O<VAE970S-BYX;6Q0
M2P$"% ,4    " #C16U0JM%DA^$!   !!0  &0              @ &?7
M>&PO=V]R:W-H965T<R]S:&5E=#,W+GAM;%!+ 0(4 Q0    ( .-%;5"37Z]F
MMP$  -(#   9              "  ;=>  !X;"]W;W)K<VAE971S+W-H965T
M,S@N>&UL4$L! A0#%     @ XT5M4%-3NXS= 0   04  !D
M ( !I6   'AL+W=O<FMS:&5E=',O<VAE970S.2YX;6Q02P$"% ,4    " #C
M16U0S]Q7I<\!  "<!   &0              @ &Y8@  >&PO=V]R:W-H965T
M<R]S:&5E=#0P+GAM;%!+ 0(4 Q0    ( .-%;5#01BCTMP$  -(#   9
M          "  ;]D  !X;"]W;W)K<VAE971S+W-H965T-#$N>&UL4$L! A0#
M%     @ XT5M4)D\IZ6S 0  T@,  !D              ( !K68  'AL+W=O
M<FMS:&5E=',O<VAE970T,BYX;6Q02P$"% ,4    " #C16U0I_K"OK<!  #2
M P  &0              @ &7:   >&PO=V]R:W-H965T<R]S:&5E=#0S+GAM
M;%!+ 0(4 Q0    ( .-%;5!R,T\RP0$  #<$   9              "  85J
M  !X;"]W;W)K<VAE971S+W-H965T-#0N>&UL4$L! A0#%     @ XT5M4.FH
M/7:S 0  T@,  !D              ( !?6P  'AL+W=O<FMS:&5E=',O<VAE
M970T-2YX;6Q02P$"% ,4    " #C16U0*@KVHL0"  !E"@  &0
M    @ %G;@  >&PO=V]R:W-H965T<R]S:&5E=#0V+GAM;%!+ 0(4 Q0    (
M .-%;5#\X%XD'P(  !X'   9              "  6)Q  !X;"]W;W)K<VAE
M971S+W-H965T-#<N>&UL4$L! A0#%     @ XT5M4$3>HS_L 0  W00  !D
M             ( !N',  'AL+W=O<FMS:&5E=',O<VAE970T."YX;6Q02P$"
M% ,4    " #C16U0F)&+(0,#  ".#   &0              @ ';=0  >&PO
M=V]R:W-H965T<R]S:&5E=#0Y+GAM;%!+ 0(4 Q0    ( .-%;5"O8.20\ $
M .X$   9              "  15Y  !X;"]W;W)K<VAE971S+W-H965T-3 N
M>&UL4$L! A0#%     @ XT5M4(AGZ-C^ @  E@L  !D              ( !
M/'L  'AL+W=O<FMS:&5E=',O<VAE970U,2YX;6Q02P$"% ,4    " #C16U0
M5$7THX0"  !W"   &0              @ %Q?@  >&PO=V]R:W-H965T<R]S
M:&5E=#4R+GAM;%!+ 0(4 Q0    ( .-%;5"Y3/6DWP$  )4$   9
M      "  2R!  !X;"]W;W)K<VAE971S+W-H965T-3,N>&UL4$L! A0#%
M  @ XT5M4%XB[T,P @  =P8  !D              ( !0H,  'AL+W=O<FMS
M:&5E=',O<VAE970U-"YX;6Q02P$"% ,4    " #C16U0V8.AM\\!   A!
M&0              @ &IA0  >&PO=V]R:W-H965T<R]S:&5E=#4U+GAM;%!+
M 0(4 Q0    ( .-%;5#-L;WKV0$  *H$   9              "  :^'  !X
M;"]W;W)K<VAE971S+W-H965T-38N>&UL4$L! A0#%     @ XT5M4*^/8^?Q
M 0  -@4  !D              ( !OXD  'AL+W=O<FMS:&5E=',O<VAE970U
M-RYX;6Q02P$"% ,4    " #C16U0;M]F>N0!  "9!   &0
M@ 'GBP  >&PO=V]R:W-H965T<R]S:&5E=#4X+GAM;%!+ 0(4 Q0    ( .-%
M;5#EV+\@IP(  &D*   9              "  0*.  !X;"]W;W)K<VAE971S
M+W-H965T-3DN>&UL4$L! A0#%     @ XT5M4&GF'O3N 0  @ 4  !D
M         ( !X)   'AL+W=O<FMS:&5E=',O<VAE970V,"YX;6Q02P$"% ,4
M    " #C16U06>AAPN,!  "9!   &0              @ $%DP  >&PO=V]R
M:W-H965T<R]S:&5E=#8Q+GAM;%!+ 0(4 Q0    ( .-%;5 1)+NN7@(  &H(
M   9              "  1^5  !X;"]W;W)K<VAE971S+W-H965T-C(N>&UL
M4$L! A0#%     @ XT5M4/@DS]O7 @   0P  !D              ( !M)<
M 'AL+W=O<FMS:&5E=',O<VAE970V,RYX;6Q02P$"% ,4    " #C16U0I'U^
MPPH"   X!@  &0              @ '"F@  >&PO=V]R:W-H965T<R]S:&5E
M=#8T+GAM;%!+ 0(4 Q0    ( .-%;5 2R60] @(  +P%   9
M  "  0.=  !X;"]W;W)K<VAE971S+W-H965T-C4N>&UL4$L! A0#%     @
MXT5M4'^B:NE2 @  & @  !D              ( !/)\  'AL+W=O<FMS:&5E
M=',O<VAE970V-BYX;6Q02P$"% ,4    " #C16U0<V:>/9$"  "T"   &0
M            @ '%H0  >&PO=V]R:W-H965T<R]S:&5E=#8W+GAM;%!+ 0(4
M Q0    ( .-%;5!U*-(6YP(  ,4+   9              "  8VD  !X;"]W
M;W)K<VAE971S+W-H965T-C@N>&UL4$L! A0#%     @ XT5M4"9>%,OI @
MR@P  !D              ( !JZ<  'AL+W=O<FMS:&5E=',O<VAE970V.2YX
M;6Q02P$"% ,4    " #C16U0L)J7*O<!   Q!0  &0              @ '+
MJ@  >&PO=V]R:W-H965T<R]S:&5E=#<P+GAM;%!+ 0(4 Q0    ( .-%;5#9
MZC SY@$  )\$   9              "  ?FL  !X;"]W;W)K<VAE971S+W-H
M965T-S$N>&UL4$L! A0#%     @ XT5M4 J#G(T; @  ]@4  !D
M     ( !%J\  'AL+W=O<FMS:&5E=',O<VAE970W,BYX;6Q02P$"% ,4
M" #C16U0X-LT([\#   2$0  &0              @ %HL0  >&PO=V]R:W-H
M965T<R]S:&5E=#<S+GAM;%!+ 0(4 Q0    ( .-%;5#:>DJB4 (  &<'   9
M              "  5ZU  !X;"]W;W)K<VAE971S+W-H965T-S0N>&UL4$L!
M A0#%     @ XT5M4#[0/S'+ @  B0H  !D              ( !Y;<  'AL
M+W=O<FMS:&5E=',O<VAE970W-2YX;6Q02P$"% ,4    " #C16U0Q_Y0BU "
M   _!P  &0              @ 'GN@  >&PO=V]R:W-H965T<R]S:&5E=#<V
M+GAM;%!+ 0(4 Q0    ( .-%;5#!;ODI;0(  #H)   9              "
M 6Z]  !X;"]W;W)K<VAE971S+W-H965T-S<N>&UL4$L! A0#%     @ XT5M
M4'MS*'!+ @  3@<  !D              ( !$L   'AL+W=O<FMS:&5E=',O
M<VAE970W."YX;6Q02P$"% ,4    " #C16U0"M)B:QL"   X!@  &0
M        @ &4P@  >&PO=V]R:W-H965T<R]S:&5E=#<Y+GAM;%!+ 0(4 Q0
M   ( .-%;5 E9XH<$ (  $<&   9              "  >;$  !X;"]W;W)K
M<VAE971S+W-H965T.# N>&UL4$L! A0#%     @ XT5M4+I,4-?B 0  % 4
M !D              ( !+<<  'AL+W=O<FMS:&5E=',O<VAE970X,2YX;6Q0
M2P$"% ,4    " #C16U0\<,C8" "   6!@  &0              @ %&R0
M>&PO=V]R:W-H965T<R]S:&5E=#@R+GAM;%!+ 0(4 Q0    ( .-%;5"ECN<\
MFP$  %L#   9              "  9W+  !X;"]W;W)K<VAE971S+W-H965T
M.#,N>&UL4$L! A0#%     @ XT5M4*%N90,&!   <!,  !D
M ( !;\T  'AL+W=O<FMS:&5E=',O<VAE970X-"YX;6Q02P$"% ,4    " #C
M16U0VE>@U:(#  #3#P  &0              @ &LT0  >&PO=V]R:W-H965T
M<R]S:&5E=#@U+GAM;%!+ 0(4 Q0    ( .-%;5#_-8#P1 (  +T'   9
M          "  875  !X;"]W;W)K<VAE971S+W-H965T.#8N>&UL4$L! A0#
M%     @ XT5M4#@*20OJ @  V@L  !D              ( ! -@  'AL+W=O
M<FMS:&5E=',O<VAE970X-RYX;6Q02P$"% ,4    " #C16U0NLA;32\"  !7
M!@  &0              @ $AVP  >&PO=V]R:W-H965T<R]S:&5E=#@X+GAM
M;%!+ 0(4 Q0    ( .-%;5#7\P6J-0(  * &   9              "  8?=
M  !X;"]W;W)K<VAE971S+W-H965T.#DN>&UL4$L! A0#%     @ XT5M4*FZ
MX4^64   E%D! !0              ( !\]\  'AL+W-H87)E9%-T<FEN9W,N
M>&UL4$L! A0#%     @ XT5M4*LO-AXW @  UPD   T              ( !
MNS ! 'AL+W-T>6QE<RYX;6Q02P$"% ,4    " #C16U0URZP_6(&   K.P
M#P              @ $=,P$ >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @
MXT5M4."O!_VR @   #4  !H              ( !K#D! 'AL+U]R96QS+W=O
M<FMB;V]K+GAM;"YR96QS4$L! A0#%     @ XT5M4)#>;LX_ @  9S,  !,
M             ( !ECP! %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     &(
,8@#@&@  !C\!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786699968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Indebtedness (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDebtInstrumentsTextBlock', window );">Schedule of Long-term Debt Instruments [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Revolving credit facility</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,143</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total long-term debt</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25,143</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt">Current portion</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,857</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Long-term debt, excluding current portion</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,286</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDebtInstrumentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of long-debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the entity, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1A<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28541-108399<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21506-112644<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(e),(f))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28551-108399<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21521-112644<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21538-112644<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 470<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=75038535&amp;loc=d3e64711-112823<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=114775985&amp;loc=d3e28878-108400<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21475-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDebtInstrumentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778819584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Receivables (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock', window );">Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Accounts receivable&#x2013;trade</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">29,134</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28,885</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Less allowance for doubtful receivables</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(486</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(564</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Receivables, net</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28,648</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28,321</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3,4)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778888416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Other Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Other Intangible Assets</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The carrying values of the Company&#x2019;s definite-lived intangible assets as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> are as follows (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; text-decoration: underline;">December 31, 2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename &amp; Brand</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br /> Compete</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br /> List</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt">Estimated useful life </td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,384</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(70</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(177</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,162</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,409</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Net balance</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">297</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">285</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,393</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,975</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; text-decoration: underline;">December 31, 2018</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename &amp; Brand</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br /> Compete</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br /> List</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt">Estimated useful life</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,384</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(33</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(85</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,034</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,152</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Net balance</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">334</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">377</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,521</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,232</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <!-- Field: Page; Sequence: 47; Value: 1 -->  <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Amortization expense related to intangible assets was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.3</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.2</div> million, and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.3</div> million for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively. The estimated remaining amortization expense as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>is as follows (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 35%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2020</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White; width: 50%"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2021</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2022</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2023</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,172</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2024</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,164</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">Thereafter</div></td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,868</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">Total</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,975</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -URI http://asc.fasb.org/topic&amp;trid=2144416<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778842624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Income Tax<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Tax Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Income Tax</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company&#x2019;s income tax provision for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div> consists of the following (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Current</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 55%; font-size: 10pt">Federal</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,920</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,772</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,117</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">State</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">185</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">439</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">551</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,105</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,211</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,668</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Deferred</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Federal</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">485</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,917</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,091</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">State</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">306</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(36</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">791</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,881</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,019</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total income tax provision</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,896</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,092</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,649</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <!-- Field: Page; Sequence: 50; Value: 1 -->  <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">The approximate tax effects of temporary differences that give rise to significant portions of the deferred tax assets and liabilities are as follows (in thousands):</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt; text-align: left">Deferred tax assets:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Reserves</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">362</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Inventory capitalization</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">396</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">421</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Compensation programs</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">578</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">447</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Retirement liability</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Equity-based compensation</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">403</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">290</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Lease liability</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">795</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Intangible assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">73</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">141</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">State tax credits, net of federal impact</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">274</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">257</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Gross deferred tax assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,881</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,936</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Valuation allowance</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(136</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Net deferred tax assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,745</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,936</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 0pt; font-size: 10pt; text-align: left">Deferred tax liabilities:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Excess of book over tax basis of fixed assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,877</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,668</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Goodwill</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,008</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,397</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Right of use asset</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(781</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Total deferred tax liabilities</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(7,666</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(6,065</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Net long-term deferred tax liabilities</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,921</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,129</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-size: 10pt"></div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The amounts recorded as deferred tax assets as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> represent the amount of tax benefits of existing deductible temporary differences or carryforwards that are more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> to be realized through the generation of sufficient future taxable income within the carryforward period. The Company has gross deferred tax assets of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$2.9</div> million at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div>that it believes are more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> to be realized in the carryforward period. Management reviews the recoverability of deferred tax assets during each reporting period. The Company has provided a valuation allowance of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$136</div> thousand for deferred tax assets (net of federal tax benefit), primarily related to tax credits generated in its <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> Massachusetts state income tax return that are being carried forward to future periods. The Company is uncertain as to whether it will have sufficient future taxable income in Massachusetts to utilize the credits prior to their expiration date. The valuation allowance against the Company&#x2019;s deferred tax assets <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>require adjustments in the future based on changes in the mix of temporary difference, changes in tax laws, and operating performance.</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The Company has approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$348</div> thousand of tax credit carryforwards related to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">one</div> state jurisdiction that expire between <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2020</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2033.</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 51; Value: 1 -->  <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The actual tax provision for the years presented differs from the &#x201c;expected&#x201d; tax provision for those years, computed by applying the U.S. federal corporate rate of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21%</div> to income before income tax expense as follows:</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Computed &#x201c;expected&#x201d; tax rate</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">34.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Increase (decrease) in income taxes resulting from:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">State taxes, net of federal tax benefit</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.8</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.8</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3.5</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Meals and entertainment</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.2</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.2</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.3</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Tax credits</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(6.2</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1.9</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(0.6</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Domestic production deduction</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2.6</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Non-deductible ISO stock option expense</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Unrecognized tax benefits</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(0.7</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Excess tax benefits on equity awards</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(0.7</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1.3</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1.4</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Excess compensation</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.6</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.8</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Impact on deferred taxes of new legislation</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(11.1</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.4</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.5</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Change in valuation allowance</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Effective tax rate</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16.5</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22.2</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22.3</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The Company files income tax returns in the U.S. federal jurisdiction and various state jurisdictions. The&nbsp;Company has <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> been audited by any state for income taxes with the exception of returns filed in Michigan which have been audited through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2004,</div> income tax returns filed in Massachusetts which have been audited through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2007,</div> income tax returns filed in Florida which have been audited through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2009,</div> income tax returns filed in New Jersey which have been audited through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2012,</div> and income tax returns in Colorado which have been audited through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017.</div> Federal and state tax returns for the years <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2016</div> through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> remain open to examination by the IRS and various state jurisdictions.</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">A reconciliation of the beginning and ending amount of gross unrecognized tax benefits (&#x201c;UTB&#x201d;) resulting from uncertain tax positions is as follows (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Gross UTB balance at beginning of fiscal year</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">150</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">150</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Reductions for tax positions of prior years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(150</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Gross UTB balance at end of fiscal year</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">150</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$150</div> thousand, respectively.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">In addition, the total amount of accrued interest and penalties on uncertain tax positions at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$153</div> thousand, respectively.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">At <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018, </div>all of the unrecognized tax benefits related to tax returns of a specific state jurisdiction that are currently under examination. On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 17, 2019 </div>the Company came to an agreement with the state and on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 21, 2019 </div>the Company received a check in the amount of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$156,000</div> as settlement of the unrecognized tax benefits.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI http://asc.fasb.org/topic&amp;trid=2144680<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6799002688">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th"><div>Common Stock Outstanding [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Treasury Stock [Member]</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2016</a></td>
<td class="nump">7,212<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2016</a></td>
<td class="nump">$ 72<span></span>
</td>
<td class="nump">$ 25,216<span></span>
</td>
<td class="nump">$ 88,352<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">$ 113,053<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Share-based compensation (in shares)</a></td>
<td class="nump">32<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">1,067<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,068<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise (in shares)</a></td>
<td class="nump">47<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise</a></td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">676<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">677<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding (in shares)</a></td>
<td class="num">(11)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding</a></td>
<td class="num">$ (1)<span></span>
</td>
<td class="num">(295)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(296)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">9,210<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">9,210<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2017</a></td>
<td class="nump">7,280<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2017</a></td>
<td class="nump">$ 73<span></span>
</td>
<td class="nump">26,664<span></span>
</td>
<td class="nump">97,562<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">123,712<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">1,212<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,212<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise (in shares)</a></td>
<td class="nump">79<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise</a></td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">1,269<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,270<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding (in shares)</a></td>
<td class="num">(5)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(144)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(144)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">14,311<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">14,311<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation', window );">Excess tax benefits on share-based compensation - adjustment</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">167<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">167<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption', window );">ASC 606 adjustments</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(71)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(71)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2018</a></td>
<td class="nump">7,385<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2018</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">29,168<span></span>
</td>
<td class="nump">111,802<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">140,457<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">1,591<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">1,591<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise (in shares)</a></td>
<td class="nump">45<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options net of shares presented for exercise</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">705<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">705<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding (in shares)</a></td>
<td class="num">(13)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units and stock option tax withholding</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(512)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(512)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">19,750<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">19,750<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balance (in shares) at Dec. 31, 2019</a></td>
<td class="nump">7,446<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">30<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2019</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">$ 30,952<span></span>
</td>
<td class="nump">$ 131,552<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">$ 161,991<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the cumulative effects of new accounting principle in period of adoption.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_CumulativeEffectsOfNewAccountingPrincipleInPeriodOfAdoption</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease to equity for grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in additional paid in capital (APIC) resulting from a tax benefit associated with share-based compensation plan other than an employee stock ownership plan (ESOP). Includes, but is not limited to, excess tax benefit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116859624&amp;loc=d3e23524-113945<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669625-108580<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued which are neither cancelled nor held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares used to settle grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29-31)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796580480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document And Entity Information - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Mar. 05, 2020</div></th>
<th class="th"><div>Jun. 28, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentInformationLineItems', window );"><strong>Document Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">UFP TECHNOLOGIES INC<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000914156<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">ufpt<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,463,260<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 279,729,924<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in CCYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented.  If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation 12B<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6672430864">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Supplemental Cash Flow Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock', window );">Cash Flow, Supplemental Disclosures [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Supplemental Cash Flow Information</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">Years Ended December 31,</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2018</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2017</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="11" style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt">(in thousands)</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Cash paid for:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 55%; font-size: 10pt">Interest</td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">664</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,303</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Income taxes, net of refunds</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,255</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,463</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,878</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Non-cash investing and financing activities:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Capital additions accrued but not yet paid</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">213</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">218</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">85</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr>  </table> </div> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">During the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> the Company permitted the exercise of stock options with exercise proceeds paid with the Company&#x2019;s stock (&#x201c;cashless&#x201d; exercises) totaling approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$172</div> thousand, respectively.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashFlowSupplementalDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. "Part noncash" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -URI http://asc.fasb.org/topic&amp;trid=2134446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashFlowSupplementalDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778783760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Stock Option and Equity Incentive Plans - Restricted Stock Unit Activity (Details) - Restricted Stock Units (RSUs) [Member]<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2019 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Outstanding, restricted stock units (in shares) | shares</a></td>
<td class="nump">72,996<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 23.60<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Awarded, restricted stock units (in shares) | shares</a></td>
<td class="nump">64,701<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Awarded, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 33.55<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Shares vested, restricted stock units (in shares) | shares</a></td>
<td class="num">(20,529)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Shares vested, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 23.74<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeitures (in shares) | shares</a></td>
<td class="num">(3,302)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeitures, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 33.31<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Outstanding, restricted stock units (in shares) | shares</a></td>
<td class="nump">113,866<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Outstanding, weighted average award date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 28.36<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R86.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6784880176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - Acquisition (Details Textual)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Feb. 01, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, Acquisition Related Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 1,089<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember', window );">Dielectrics [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired', window );">Business Acquisition, Percentage of Voting Interests Acquired</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Payments to Acquire Businesses, Gross</a></td>
<td class="nump">$ 80,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment', window );">Business Combination, Consideration Transferred, Working Capital Adjustment</a></td>
<td class="nump">$ 250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Lessee, Operating Lease, Term of Contract</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_NumberOfLeaseTermOptions', window );">Number of Lease Term Options</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, Acquisition Related Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseRenewalTerm', window );">Lessee, Operating Lease, Renewal Term</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of adjustment to working capital in a business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_BusinessCombinationConsiderationTransferredWorkingCapitalAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_NumberOfLeaseTermOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of lease term options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_NumberOfLeaseTermOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of voting equity interests acquired at the acquisition date in the business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 25<br> -Paragraph 23<br> -URI http://asc.fasb.org/extlink&amp;oid=116868678&amp;loc=d3e1043-128460<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseRenewalTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease renewal, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseRenewalTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918673-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseTermOfContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R82.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6949883872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Employee Benefit Plans (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Defined Contribution Plan, Cost</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,100<span></span>
</td>
<td class="nump">$ 800<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount', window );">Self-insured Health Insurance Program, Stop Loss Amount</a></td>
<td class="nump">225<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent', window );">Deferred Compensation Liability, Classified, Noncurrent, Total</a></td>
<td class="nump">2,788<span></span>
</td>
<td class="nump">2,044<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent', window );">Assets for Plan Benefits, Defined Benefit Plan</a></td>
<td class="nump">$ 2,800<span></span>
</td>
<td class="nump">$ 2,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of the stop loss per insured person under the partially self-insured health insurance program.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_SelfIinsuredHealthInsuranceProgramStopLossAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate carrying value as of the balance sheet date of the liabilities for all deferred compensation arrangements payable beyond one year (or the operating cycle, if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset, recognized in statement of financial position, for overfunded defined benefit pension and other postretirement plans.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109237824&amp;loc=d3e1731-114919<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109237824&amp;loc=d3e1703-114919<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanAssetsForPlanBenefitsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6604677456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Net Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details) - shares<br> shares in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted average common shares outstanding during the year (in shares)</a></td>
<td class="nump">7,424<span></span>
</td>
<td class="nump">7,347<span></span>
</td>
<td class="nump">7,248<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements', window );">Weighted average common equivalent shares due to stock options and restricted stock units (in shares)</a></td>
<td class="nump">92<span></span>
</td>
<td class="nump">83<span></span>
</td>
<td class="nump">89<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted average common shares outstanding during the year (in shares)</a></td>
<td class="nump">7,516<span></span>
</td>
<td class="nump">7,430<span></span>
</td>
<td class="nump">7,337<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28A<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1500-109256<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 16<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1505-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1448-109256<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6783500784">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 6 - Other Intangible Assets - Definite-lived Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 23,384<span></span>
</td>
<td class="nump">$ 23,384<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(2,409)<span></span>
</td>
<td class="num">(1,152)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">20,975<span></span>
</td>
<td class="nump">22,232<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember', window );">Trade Name and Brand [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">367<span></span>
</td>
<td class="nump">367<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(70)<span></span>
</td>
<td class="num">(33)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">297<span></span>
</td>
<td class="nump">334<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Noncompete Agreements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">462<span></span>
</td>
<td class="nump">462<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(177)<span></span>
</td>
<td class="num">(85)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">285<span></span>
</td>
<td class="nump">377<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember', window );">Customer Lists [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">22,555<span></span>
</td>
<td class="nump">22,555<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="num">(2,162)<span></span>
</td>
<td class="num">(1,034)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">$ 20,393<span></span>
</td>
<td class="nump">$ 21,521<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 928<br> -SubTopic 340<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6473545&amp;loc=d3e61844-108004<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ufpt_TradeNameAndBrandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerListsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6797657376">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Sep. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Mar. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Sep. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Mar. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 50,260<span></span>
</td>
<td class="nump">$ 49,394<span></span>
</td>
<td class="nump">$ 51,399<span></span>
</td>
<td class="nump">$ 47,328<span></span>
</td>
<td class="nump">$ 50,697<span></span>
</td>
<td class="nump">$ 47,808<span></span>
</td>
<td class="nump">$ 49,019<span></span>
</td>
<td class="nump">$ 42,931<span></span>
</td>
<td class="nump">$ 198,381<span></span>
</td>
<td class="nump">$ 190,455<span></span>
</td>
<td class="nump">$ 147,843<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=us-gaap_ProductMember', window );">Product [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">193,016<span></span>
</td>
<td class="nump">183,186<span></span>
</td>
<td class="nump">146,275<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ufpt_ToolingAndMachineryMember', window );">Tooling and Machinery [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,730<span></span>
</td>
<td class="nump">4,302<span></span>
</td>
<td class="nump">1,181<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ufpt_EngineeringAndDevelopmentMember', window );">Engineering and Development [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,635<span></span>
</td>
<td class="nump">$ 2,967<span></span>
</td>
<td class="nump">$ 387<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130543-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=us-gaap_ProductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=us-gaap_ProductMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ufpt_ToolingAndMachineryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ufpt_ToolingAndMachineryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ufpt_EngineeringAndDevelopmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ufpt_EngineeringAndDevelopmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6666804064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Receivables (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Accounts Receivable, Credit Loss Expense (Reversal)</a></td>
<td class="num">$ (52)<span></span>
</td>
<td class="num">$ (50)<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=119407570&amp;loc=SL82919249-210447<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.20.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>173</ContextCount>
  <ElementCount>460</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>51</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>4</UnitCount>
  <MyReports>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Consolidated Balance Sheets (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-consolidated-balance-sheets-parentheticals</Role>
      <ShortName>Consolidated Balance Sheets (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Consolidated Statements of Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-income</Role>
      <ShortName>Consolidated Statements of Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-stockholders-equity</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-consolidated-statements-of-cash-flows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Disclosure - Note 1 - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies</Role>
      <ShortName>Note 1 - Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>007 - Disclosure - Note 2 - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition</Role>
      <ShortName>Note 2 - Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>008 - Disclosure - Note 3 - Supplemental Cash Flow Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-</Role>
      <ShortName>Note 3 - Supplemental Cash Flow Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 4 - Receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-4-receivables</Role>
      <ShortName>Note 4 - Receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 5 - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-5-inventories-</Role>
      <ShortName>Note 5 - Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 6 - Other Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-</Role>
      <ShortName>Note 6 - Other Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 7 - Property, Plant and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment</Role>
      <ShortName>Note 7 - Property, Plant and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 8 - Indebtedness</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-8-indebtedness</Role>
      <ShortName>Note 8 - Indebtedness</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 9 - Accrued Expenses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses</Role>
      <ShortName>Note 9 - Accrued Expenses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 10 - Income Tax</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-10-income-tax</Role>
      <ShortName>Note 10 - Income Tax</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 11 - Net Income Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share</Role>
      <ShortName>Note 11 - Net Income Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans</Role>
      <ShortName>Note 12 - Stock Option and Equity Incentive Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 13 - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-13-leases</Role>
      <ShortName>Note 13 - Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 14 - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-14-commitments-and-contingencies</Role>
      <ShortName>Note 14 - Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 15 - Employee Benefit Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans</Role>
      <ShortName>Note 15 - Employee Benefit Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 16 - Fair Value of Financial Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-</Role>
      <ShortName>Note 16 - Fair Value of Financial Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 17 - Segment Data</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-17-segment-data</Role>
      <ShortName>Note 17 - Segment Data</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 18 - Quarterly Financial Information (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited</Role>
      <ShortName>Note 18 - Quarterly Financial Information (Unaudited)</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 19 - Acquisition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-19-acquisition</Role>
      <ShortName>Note 19 - Acquisition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Schedule II - Valuation and Qualifying Accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 1 - Summary of Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-tables</Role>
      <ShortName>Note 1 - Summary of Significant Accounting Policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 2 - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-tables</Role>
      <ShortName>Note 2 - Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 3 - Supplemental Cash Flow Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-tables</Role>
      <ShortName>Note 3 - Supplemental Cash Flow Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 4 - Receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-4-receivables-tables</Role>
      <ShortName>Note 4 - Receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-4-receivables</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Note 5 - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-5-inventories-tables</Role>
      <ShortName>Note 5 - Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-5-inventories-</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 6 - Other Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-tables</Role>
      <ShortName>Note 6 - Other Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 7 - Property, Plant and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-tables</Role>
      <ShortName>Note 7 - Property, Plant and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 8 - Indebtedness (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-tables</Role>
      <ShortName>Note 8 - Indebtedness (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-8-indebtedness</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 9 - Accrued Expenses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-tables</Role>
      <ShortName>Note 9 - Accrued Expenses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 10 - Income Tax (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-10-income-tax-tables</Role>
      <ShortName>Note 10 - Income Tax (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-10-income-tax</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 11 - Net Income Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-tables</Role>
      <ShortName>Note 11 - Net Income Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-tables</Role>
      <ShortName>Note 12 - Stock Option and Equity Incentive Plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 13 - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-13-leases-tables</Role>
      <ShortName>Note 13 - Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-13-leases</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 16 - Fair Value of Financial Instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-tables</Role>
      <ShortName>Note 16 - Fair Value of Financial Instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>041 - Disclosure - Note 17 - Segment Data (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-17-segment-data-tables</Role>
      <ShortName>Note 17 - Segment Data (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-17-segment-data</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 18 - Quarterly Financial Information (Unaudited) (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-tables</Role>
      <ShortName>Note 18 - Quarterly Financial Information (Unaudited) (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 19 - Acquisition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-19-acquisition-tables</Role>
      <ShortName>Note 19 - Acquisition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-19-acquisition</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>044 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 1 - Summary of Significant Accounting Policies (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-details-textual</Role>
      <ShortName>Note 1 - Summary of Significant Accounting Policies (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-tables</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 1 - Summary of Significant Accounting Policies - Estimated Useful Lives of Property, Plant, and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-estimated-useful-lives-of-property-plant-and-equipment-details</Role>
      <ShortName>Note 1 - Summary of Significant Accounting Policies - Estimated Useful Lives of Property, Plant, and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 1 - Summary of Significant Accounting Policies - Compensation Cost Charged Against Income (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-compensation-cost-charged-against-income-details</Role>
      <ShortName>Note 1 - Summary of Significant Accounting Policies - Compensation Cost Charged Against Income (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 1 - Summary of Significant Accounting Policies - Fair Value Assumptions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-1-summary-of-significant-accounting-policies-fair-value-assumptions-details</Role>
      <ShortName>Note 1 - Summary of Significant Accounting Policies - Fair Value Assumptions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 2 - Revenue Recognition (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-details-textual</Role>
      <ShortName>Note 2 - Revenue Recognition (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-tables</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details</Role>
      <ShortName>Note 2 - Revenue Recognition - Revenue Disaggregated by the Major Types of Goods and Services Sold (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details</Role>
      <ShortName>Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 3 - Supplemental Cash Flow Information (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-details-textual</Role>
      <ShortName>Note 3 - Supplemental Cash Flow Information (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-tables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details</Role>
      <ShortName>Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>054 - Disclosure - Note 4 - Receivables (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-4-receivables-details-textual</Role>
      <ShortName>Note 4 - Receivables (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-4-receivables-tables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>055 - Disclosure - Note 4 - Receivables - Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-4-receivables-receivables-details</Role>
      <ShortName>Note 4 - Receivables - Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>056 - Disclosure - Note 5 - Inventories - Summary of Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-5-inventories-summary-of-inventory-details</Role>
      <ShortName>Note 5 - Inventories - Summary of Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>057 - Disclosure - Note 6 - Other Intangible Assets (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-details-textual</Role>
      <ShortName>Note 6 - Other Intangible Assets (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-tables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>058 - Disclosure - Note 6 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-definitelived-intangible-assets-details</Role>
      <ShortName>Note 6 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>059 - Disclosure - Note 6 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-6-other-intangible-assets-future-amortization-of-intangible-assets-details</Role>
      <ShortName>Note 6 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>060 - Disclosure - Note 7 - Property, Plant and Equipment (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-details-textual</Role>
      <ShortName>Note 7 - Property, Plant and Equipment (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-tables</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>061 - Disclosure - Note 7 - Property, Plant and Equipment - Property, Plant, and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-7-property-plant-and-equipment-property-plant-and-equipment-details</Role>
      <ShortName>Note 7 - Property, Plant and Equipment - Property, Plant, and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>062 - Disclosure - Note 8 - Indebtedness (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-details-textual</Role>
      <ShortName>Note 8 - Indebtedness (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-tables</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>063 - Disclosure - Note 8 - Indebtedness - Long-term Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-8-indebtedness-longterm-debt-details</Role>
      <ShortName>Note 8 - Indebtedness - Long-term Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>064 - Disclosure - Note 9 - Accrued Expenses - Accrued Expenses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-9-accrued-expenses-accrued-expenses-details</Role>
      <ShortName>Note 9 - Accrued Expenses - Accrued Expenses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>065 - Disclosure - Note 10 - Income Tax (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-10-income-tax-details-textual</Role>
      <ShortName>Note 10 - Income Tax (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-10-income-tax-tables</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>066 - Disclosure - Note 10 - Income Tax - Income Tax Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-provision-details</Role>
      <ShortName>Note 10 - Income Tax - Income Tax Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>067 - Disclosure - Note 10 - Income Tax - Deferred Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-10-income-tax-deferred-tax-assets-and-liabilities-details</Role>
      <ShortName>Note 10 - Income Tax - Deferred Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>068 - Disclosure - Note 10 - Income Tax - Income Tax Rate Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-10-income-tax-income-tax-rate-reconciliation-details</Role>
      <ShortName>Note 10 - Income Tax - Income Tax Rate Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>069 - Disclosure - Note 10 - Income Tax - Unrecognized Tax Benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-10-income-tax-unrecognized-tax-benefits-details</Role>
      <ShortName>Note 10 - Income Tax - Unrecognized Tax Benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>070 - Disclosure - Note 11 - Net Income Per Share (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-details-textual</Role>
      <ShortName>Note 11 - Net Income Per Share (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-tables</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>071 - Disclosure - Note 11 - Net Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-11-net-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details</Role>
      <ShortName>Note 11 - Net Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>072 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-details-textual</Role>
      <ShortName>Note 12 - Stock Option and Equity Incentive Plans (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-tables</ParentRole>
      <Position>73</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>073 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Compensation Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-compensation-cost-details</Role>
      <ShortName>Note 12 - Stock Option and Equity Incentive Plans - Compensation Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>074 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Summary of Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-summary-of-stock-option-activity-details</Role>
      <ShortName>Note 12 - Stock Option and Equity Incentive Plans - Summary of Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>075 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Restricted Stock Unit Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-restricted-stock-unit-activity-details</Role>
      <ShortName>Note 12 - Stock Option and Equity Incentive Plans - Restricted Stock Unit Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>076 - Disclosure - Note 12 - Stock Option and Equity Incentive Plans - Future Share-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-12-stock-option-and-equity-incentive-plans-future-sharebased-compensation-expense-details</Role>
      <ShortName>Note 12 - Stock Option and Equity Incentive Plans - Future Share-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>077 - Disclosure - Note 13 - Leases (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-13-leases-details-textual</Role>
      <ShortName>Note 13 - Leases (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-13-leases-tables</ParentRole>
      <Position>78</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>078 - Disclosure - Note 13 - Leases - Lease Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-13-leases-lease-cost-details</Role>
      <ShortName>Note 13 - Leases - Lease Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>079 - Disclosure - Note 13 - Leases - Aggregate Future Lease Payments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-13-leases-aggregate-future-lease-payments-details</Role>
      <ShortName>Note 13 - Leases - Aggregate Future Lease Payments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>080 - Disclosure - Note 13 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-13-leases-future-minimum-lease-payments-for-operating-leases-details</Role>
      <ShortName>Note 13 - Leases - Future Minimum Lease Payments For Operating Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>081 - Disclosure - Note 15 - Employee Benefit Plans (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans-details-textual</Role>
      <ShortName>Note 15 - Employee Benefit Plans (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-15-employee-benefit-plans</ParentRole>
      <Position>82</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>082 - Disclosure - Note 16 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-16-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details</Role>
      <ShortName>Note 16 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>083 - Disclosure - Note 17 - Segment Data - Net Sales by Market (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-17-segment-data-net-sales-by-market-details</Role>
      <ShortName>Note 17 - Segment Data - Net Sales by Market (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>084 - Disclosure - Note 18 - Quarterly Financial Information (Unaudited) - Summarized Quarterly Financial Data (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-summarized-quarterly-financial-data-details</Role>
      <ShortName>Note 18 - Quarterly Financial Information (Unaudited) - Summarized Quarterly Financial Data (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-18-quarterly-financial-information-unaudited-tables</ParentRole>
      <Position>85</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>085 - Disclosure - Note 19 - Acquisition (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-19-acquisition-details-textual</Role>
      <ShortName>Note 19 - Acquisition (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-note-19-acquisition-tables</ParentRole>
      <Position>86</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>086 - Disclosure - Note 19 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-19-acquisition-assets-acquires-and-liabilities-assumed-details</Role>
      <ShortName>Note 19 - Acquisition - Assets Acquires and Liabilities Assumed (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>087 - Disclosure - Note 19 - Acquisition - Pro Forma Information (Unaudited) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-note-19-acquisition-pro-forma-information-unaudited-details</Role>
      <ShortName>Note 19 - Acquisition - Pro Forma Information (Unaudited) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="ufpt-20191231.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>088 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-details</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20191231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables</ParentRole>
      <Position>89</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>ufpt-20191231.xml</File>
    <File>ufpt-20191231.xsd</File>
    <File>ufpt-20191231_cal.xml</File>
    <File>ufpt-20191231_def.xml</File>
    <File>ufpt-20191231_lab.xml</File>
    <File>ufpt-20191231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy>http://fasb.org/srt/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/us-gaap/2019-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786787616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Property, Plant and Equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Property, Plant and Equipment [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">December 31,</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2018</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Land and improvements</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,191</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,191</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Buildings and improvements</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">35,502</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">35,187</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Leasehold improvements</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,022</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,843</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Machinery &amp; equipment</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">66,438</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">62,440</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Furniture, fixtures, computers &amp; software</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,414</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,119</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">Construction in progress</div></td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,522</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">999</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116,089</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">111,779</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778854720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Supplemental Cash Flow Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock', window );">Schedule of Cash Flow, Supplemental Disclosures [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">Years Ended December 31,</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2018</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2017</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="11" style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt">(in thousands)</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Cash paid for:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 55%; font-size: 10pt">Interest</td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">664</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,303</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Income taxes, net of refunds</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,255</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,463</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,878</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Non-cash investing and financing activities:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Capital additions accrued but not yet paid</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">213</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">218</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">85</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of supplemental cash flow information for the periods presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778845792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Net Income Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock', window );">Schedule of Weighted Average Number of Shares [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Basic weighted average common shares outstanding during the year</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,424</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,347</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,248</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Weighted average common equivalent shares due to stock options and restricted stock units</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">92</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">83</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">89</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Diluted weighted average common shares outstanding during the year</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,516</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,430</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,337</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786848080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Property, Plant and Equipment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property, Plant and Equipment Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Property, Plant and Equipment</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Property, plant and equipment consist of the following (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">December 31,</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2018</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Land and improvements</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,191</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,191</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Buildings and improvements</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">35,502</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">35,187</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Leasehold improvements</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,022</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,843</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Machinery &amp; equipment</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">66,438</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">62,440</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Furniture, fixtures, computers &amp; software</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,414</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,119</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">Construction in progress</div></td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,522</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">999</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116,089</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">111,779</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">Depreciation and amortization expense of Property, Plant and Equipment for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$6.9</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$6.6</div> million, and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$5.3</div> million, respectively.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, accounting policies and methodology, roll forwards, depreciation, depletion and amortization expense, including composite depreciation, accumulated depreciation, depletion and amortization expense, useful lives and method used, income statement disclosures, assets held for sale and public utility disclosures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI http://asc.fasb.org/topic&amp;trid=2155823<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786786240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Net Income Per Share<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Earnings Per Share [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Net Income Per Share</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Basic income per share is based upon the weighted average common shares outstanding during each year. Diluted income per share is based upon the weighted average of common shares and dilutive common stock equivalent shares outstanding during each year. The weighted average number of shares used to compute both basic and diluted income per share consisted of the following (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Basic weighted average common shares outstanding during the year</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,424</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,347</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,248</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Weighted average common equivalent shares due to stock options and restricted stock units</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">92</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">83</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">89</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Diluted weighted average common shares outstanding during the year</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,516</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,430</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7,337</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The computation of diluted earnings per share excludes the effect of the potential exercise of stock awards, including stock options, when the average market price of the common stock is lower than the exercise price of the related options during the period. These outstanding stock awards are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> included in the computation of diluted earnings per share because the effect would have been antidilutive.</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">For the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> the number of stock awards excluded from the computation was <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,536,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,344</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27,336,</div> respectively.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI http://asc.fasb.org/topic&amp;trid=2144383<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778834320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net sales of:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 55%; font-size: 10pt; text-align: left">Products</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">193,016</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">183,186</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">146,275</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Tooling and Machinery</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,730</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,302</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,181</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Engineering services</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,635</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,967</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">387</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Total net sales</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">198,381</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">190,455</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">147,843</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer, Asset and Liability [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Liabilities</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Years Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Deferred revenue - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,507</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">871</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Acquired in Dielectrics business combination</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,175</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Increases due to consideration received from customers</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,216</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,188</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Revenue recognized</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,149</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,727</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Deferred revenue - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,574</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,507</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Contract Assets</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Years Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: right">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Unbilled Receivables - beginning of period</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Increases due to revenue recognized - not invoiced to customers</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">831</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">301</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Decreases due to customer invoicing</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(824</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(236</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Unbilled Receivables - end of period</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of contract balances and changes in contract balances.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6673869664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Employee Benefit Plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock', window );">Compensation and Employee Benefit Plans [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Employee Benefit Plans</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company maintains a profit-sharing plan for eligible employees. Contributions to the Plan are made in the form of matching contributions to employee <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">401</div>(k) deferrals, as well as discretionary profit-sharing amounts determined by the Board of Directors to be funded by <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> March 15 </div>following each fiscal year. Contributions to the Plan were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.0</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.1</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.8</div> million for the years <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company has a partially self-insured health insurance program that covers all eligible participating employees. The maximum liability is limited by a stop loss of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$225</div> thousand per insured person, along with an aggregate stop loss determined by the number of participants.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company has an Executive, Non-qualified &#x201c;Excess&#x201d; Plan (&#x201c;the Plan&#x201d;), which is a deferred compensation plan available to certain executives. The Plan permits participants to defer receipt of part of their current compensation to a later date as part of their personal retirement or financial planning. Participants have an unsecured contractual commitment from the Company to pay amounts due under the Plan.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The compensation withheld from Plan participants, together with gains or losses determined by the participants&#x2019; deferral elections is reflected as a deferred compensation obligation to participants and is classified within the liabilities section in the accompanying balance sheets. At <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> the balance of the deferred compensation liability totaled approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$2.8</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$2.0</div> million, respectively. The related assets, which are held in the form of a Company-owned, variable life insurance policy that names the Company as the beneficiary, are classified within the other assets section of the accompanying balance sheets and are accounted for based on the underlying cash surrender values of the policies and totaled approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$2.8</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$2.0</div> million as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> respectively.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndEmployeeBenefitPlansTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI http://asc.fasb.org/topic&amp;trid=2228938<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 712<br> -URI http://asc.fasb.org/topic&amp;trid=2197446<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -URI http://asc.fasb.org/topic&amp;trid=2127225<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -URI http://asc.fasb.org/topic&amp;trid=2235017<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndEmployeeBenefitPlansTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778760672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - Acquisition<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Business Combination Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Acquisition</div></td> </tr>  </table> <div style=" font-size: 10pt; margin: 0pt 0; text-indent: 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 1, 2018 </div>the Company purchased <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100%</div> of the outstanding shares of common stock of Dielectrics Inc., pursuant to a stock purchase agreement and related agreements, for an aggregate purchase price of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$80</div>&nbsp;million in cash. The purchase price was subject to adjustment based upon Dielectrics&#x2019; working capital at closing. An additional <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$250</div> thousand of consideration was paid by the Company as a result of the final working capital adjustment. A portion of the purchase price is being held in escrow to indemnify the Company against certain claims, losses and liabilities. The Purchase Agreement contains customary representations, warranties and covenants customary for transactions of this type.</div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Founded in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1954</div> and based in Chicopee, Massachusetts, Dielectrics is a leader in the design, development, and manufacture of medical devices using thermoplastic materials. They primarily use radio frequency and impulse welding to design and manufacture solutions for the medical industry. The Company has leased the Chicopee location from a realty trust owned by the selling shareholder and affiliates. The lease is for <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">five</div> years with <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">two <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">five</div></div>-year renewal options.</div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <!-- Field: Page; Sequence: 59; Value: 1 -->  <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The following table summarizes the allocation of consideration paid to the acquisition date fair value of the assets acquired and liabilities assumed based on management&#x2019;s estimates of fair value (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Consideration Paid:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 35%; font-size: 10pt; text-align: left">Cash paid at closing</td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">80,000</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White; width: 50%"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Working capital adjustment</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">250</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Cash from Dielectrics</td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,272</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Total consideration</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Purchase Price Allocation:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accounts receivable</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,384</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Inventory</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,418</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Other current assets</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">122</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Property, plant and equipment</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,600</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Customer list</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Non-compete</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 0pt; font-size: 10pt">Trade name and brand</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; padding-bottom: 1pt">Goodwill</td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">44,516</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Total identifiable assets</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">81,424</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accounts payable</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,325</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accrued expenses</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(946</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Deferred revenue</td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,175</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Net assets acquired</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <div style=" font-size: 10pt; margin: 0pt 0"></div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">Acquisition costs associated with the transaction were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.1</div> million and were charged to expense in the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018. </div>These costs were primarily for investment banking and legal fees and are reflected on the face of the income statement.</div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The following table contains an unaudited pro forma condensed consolidated statement of operations for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> as if the Dielectrics acquisition had occurred at the beginning of each of the respective periods (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</div> <div style=" margin: 0pt 0 0pt 0.5in; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Year Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">(Unaudited)</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">(Unaudited)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">193,510</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">180,419</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Operating Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,464</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">18,990</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,110</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,126</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Earnings per share:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Basic</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.92</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.81</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Diluted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.90</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.79</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 0.5in; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 0.5in">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The above unaudited pro forma information is presented for illustrative purposes only and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be indicative of the results of operations that would have occurred had the Dielectrics acquisition occurred as presented. In addition, future results <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>vary significantly from the results reflected in such pro&nbsp;forma information.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -URI http://asc.fasb.org/topic&amp;trid=2303972<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6798977952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Indebtedness (Details Textual) - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 01, 2018</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeNotionalAmount', window );">Derivative, Notional Amount</a></td>
<td class="nump">$ 20,000,000<span></span>
</td>
<td class="nump">$ 14,285,712<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeTermOfContract', window );">Derivative, Term of Contract</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFixedInterestRate', window );">Derivative, Fixed Interest Rate</a></td>
<td class="nump">2.70%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap [Member] | Other Nonoperating Income (Expense) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Derivative, Gain (Loss) on Derivative, Net, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">388,000<span></span>
</td>
<td class="nump">$ 64,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember', window );">Interest Rate Swap [Member] | Other Current Liabilities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeNet', window );">Derivative, Fair Value, Net, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 325,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Unsecured Revolving Credit Facility [Member] | London Interbank Offered Rate (LIBOR) [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Debt Instrument, Face Amount</a></td>
<td class="nump">$ 70,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage', window );">Debt Instrument, Interest Rate, Effective Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.80%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="nump">$ 700,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | London Interbank Offered Rate (LIBOR) [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">1.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Prime Rate [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Prime Rate [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">0.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Unsecured Revolving Credit Facility [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">$ 50,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember', window );">Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Unsecured Term Loan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentFaceAmount', window );">Debt Instrument, Face Amount</a></td>
<td class="nump">$ 20,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage points added to the reference rate to compute the variable rate on the debt instrument.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face (par) amount of debt instrument at time of issuance.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28551-108399<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=114775985&amp;loc=d3e28878-108400<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentInterestRateEffectivePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109500613&amp;loc=SL6036836-161870<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=114775744&amp;loc=d3e28551-108399<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateEffectivePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeFairValueOfDerivativeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fair value of the assets less the liabilities of a derivative or group of derivatives.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=118260190&amp;loc=d3e13433-108611<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFairValueOfDerivativeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeFixedInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Fixed interest rate related to the interest rate derivative.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFixedInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeGainLossOnDerivativeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the fair value of derivatives recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5618551-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeGainLossOnDerivativeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeNotionalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Nominal or face amount used to calculate payment on derivative.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1B<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5580258-113959<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=109980867&amp;loc=SL5579245-113959<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeNotionalAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Period the derivative contract is outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeTermOfContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LettersOfCreditOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(b),22(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentRiskAxis=us-gaap_InterestRateSwapMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_OtherNonoperatingIncomeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_OtherNonoperatingIncomeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=us-gaap_OtherCurrentLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=us-gaap_OtherCurrentLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LineOfCreditFacilityAxis=ufpt_SubsidiaryGuarantorsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=ufpt_UnsecuredRevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=ufpt_UnsecuredRevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_LondonInterbankOfferedRateLIBORMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_LondonInterbankOfferedRateLIBORMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ufpt_AmendedAndRestatedCreditAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ufpt_AmendedAndRestatedCreditAgreementMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_PrimeRateMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableRateAxis=us-gaap_PrimeRateMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongtermDebtTypeAxis=ufpt_UnsecuredTermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongtermDebtTypeAxis=ufpt_UnsecuredTermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796804752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Income Tax - Income Tax Provision (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">$ 2,920<span></span>
</td>
<td class="nump">$ 1,772<span></span>
</td>
<td class="nump">$ 3,117<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">185<span></span>
</td>
<td class="nump">439<span></span>
</td>
<td class="nump">551<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income taxes</a></td>
<td class="nump">3,105<span></span>
</td>
<td class="nump">2,211<span></span>
</td>
<td class="nump">3,668<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">485<span></span>
</td>
<td class="nump">1,917<span></span>
</td>
<td class="num">(1,091)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="nump">306<span></span>
</td>
<td class="num">(36)<span></span>
</td>
<td class="nump">72<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income taxes</a></td>
<td class="nump">792<span></span>
</td>
<td class="nump">1,881<span></span>
</td>
<td class="num">(1,019)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Total income tax provision</a></td>
<td class="nump">$ 3,896<span></span>
</td>
<td class="nump">$ 4,092<span></span>
</td>
<td class="nump">$ 2,649<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 20<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109238882&amp;loc=d3e38679-109324<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
..report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

..report table.authRefData a {
	display: block;
	font-weight: bold;
}

..report table.authRefData p {
	margin-top: 0px;
}

..report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

..report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

..report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

..report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
..pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
..report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

..report hr {
	border: 1px solid #acf;
}

/* Top labels */
..report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

..report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

..report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

..report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

..report td.pl div.a {
	width: 200px;
}

..report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
..report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
..report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
..report .re, .report .reu {
	background-color: #def;
}

..report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
..report .ro, .report .rou {
	background-color: white;
}

..report .rou td {
	border-bottom: 1px solid black;
}

..report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
..report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
..report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

..report .nump {
	padding-left: 2em;
}

..report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
..report .text {
	text-align: left;
	white-space: normal;
}

..report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

..report .text .more {
	display: none;
}

..report .text .note {
	font-style: italic;
	font-weight: bold;
}

..report .text .small {
	width: 10em;
}

..report sup {
	font-style: italic;
}

..report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>58
<FILENAME>0001171843-20-001695-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001171843-20-001695-xbrl.zip
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
MS.N-."NM0B'[?KCOV-]Q(7ZCN=_<[SYZ<@JB=D/<[UC4/=?ZZ_KK56KQ,>6
MGP^!Y^'3'(;CD%:,]\[>B^>BE&;F"$$U<)"!0K?' 0>&KE$.Z*_>10"K;A?\
MO5%.]LG*/VE*95'<7?[R.Z] 91[Y*JU0>>UY05DYJEP*)^ID-!E/#Q#(^BU)
M7![QC0X0)XU$4:Y*W+? ]WSPYRR>*R&^\0$*L6[8[ "%B<ZKD)E'D!,^F<IT
MI*I*13++8G6*$WX5'Y4W.K+@+X^2<A234YQP]].*DK(FMD<G/2RY!'&"LR'D
M [')PO1O+,TNC\8YF_9;2R]Z:REUK-?<UE)DE$)HE0(URZ[N*14^;PN;S,8'
MU_#X!GBF'A =*DC,IFMI O:&5?T$$HH'%@L8:;KF/ 3DQA42-(K2$C#F6FD&
MB>)J1#)EBPE?7T:..O5JU&P+2P55E))B?//GC^#WL( K.+Y!<H\#^M9=0C=
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
M,KE7L.<E,CGI)%XO?0DC.$^S$ %Q\2ZW+CJ,/7]*HDY/02^6SHFEL?H!>W4
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
M!O-IP")35>RF2#676N;7OQ')1:3$E)([*25P>DZY2B(C8\O(R(@G+,\(-WZ
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
MW8MQ>GEHFY*AAUC_;02A;D<M%=*CAW.&W?7:QXZ+6R)A";D7K=FTUFMP>4Z
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
M][I'WL >8&+B'4B+;@OJX6&P3^2SO81G50+;6F8YX!_VD+GI=-#++ <)Q'9
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
M,O6?"L_STUFDBO)3F9<=#AM]+1T?8DII^1>%9GE/H5FRN"G'[CL:X'.Q.3+
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
MF9EOIW7=5W,PV"S^'W8.**<^'>T*;)7<#/Z1G%[@'=YP-&@2LTM17W,,-NL
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
M(,]$<C9=>1.KT?'+2$P/I25/HEN@!QN9I6>)TF^_V)LHD8(#OH+?U(71'B/
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
M":G5?#/\@C=>2,'Z$@A<=)0/X$TP!#)4:!8Z%QY+)GY0'TFD#0&^M2(V9I
M6OX-I("]LOH*GDOM)PV'9*0+_D5<@7]SDQNH ]37X,<@$C>XV,]*55=P#@"0
ME6V%82/A7X@R"7PR2][FB2O<Q(1-T&4J'[)$EP5U,%F5!P+G!'0#2Q17%Y@/
M6F5(L#=*4N ?5-L0=@RBG[*"Q25U_2(@%K_>!$M02*2^$EXLH[.S5AE<<;-D
M$H<J=@ENP;:J/QUS$$ $^=9'+>,0QNZJ@I%Z&UU21"TOP6'G.0B<:-BZ@^=W
MVT']#QPID4QEF=+8"5TPD (I@:B(I:.&00T_M8UG:-N8.8&W^!IC&"'F/>Q
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
MC9C/=,?[8ZS4L*_;_@'PU/0;\*!GSCO-A:WK5C:%7ZP,8&_1D\9@DS#)*M(
MYX=)@_X^?*HPCJS7U+#?'!P*]3[HP;-4?Y*@:1QO/AN.BG1X@SN5-8\3_75$
MTQ#><96MD-RWMB7:!++&HSCRF#4_Q4XQNN7-W85GA%,\\:>\8:XK9L2SLQEI
MDOL(V[7L=2OX:KR+KM\-E7\./*@9%NN8R]&.Z&-C&I([[*H<-C;X0S0.VDNK
M<"=)*+$);-@3^ RZ!$5&-(;-=U?,>NDHEYJ+/5[]OIN &0,A =3;R@)$F6CH
M%Y J9UN5N&"/"WWT)AB77OIT0CV!D]3L1^)<J08C76X%UH?_I7HW&Q=+F;90
MR*[W>=BPZ53K=[P1;JMNU_ON5V'7J?=?HXVRV.IVO<]^ U2GFCC#Z;C<75^S
M=F#ZG75M@3%DZA_X,3TJC@1DV'$9D(=Y4G97"H YPCH X(X[RFY- <P18 ,
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
MU-&IUOQ2B518A>!/A_B\B-_OMKN#=G?4L')'?]M'H,1_!_\-?_Y_4$L#!!0
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
M,V'Z(:&BYXXHYW)GX-,:DV/:,S6%G8H$YR7LG*2RR3_[I)AV PV'8C(-*G1
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
MMMM#LUNOJ+P]6C@"/VLZ3:J#Q^ 0,;%'/GM<&+CSFT8P-+NZN"X>U\O[E=E
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
M->OC'BL#X]#J-CAPID+H>1RX7/!4.W U(NBVK[ %(8PV>9BE+F[#9$".!%S
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
MU7!^\+45,0BL$5C;(Z+#)P&;9<GAKGB9.X?=!D$K J$W0F^$W@B]$7HC]-9
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
M+V"YG0#$R8B3.U4]Y,L5SY2EJ\Z\;.[#W:15'= ,9-GV>*GSB.-ZT^=4")H
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
MLW1)4U4A^(*(!I.KO>&DB!Y?B'9IN@9D+$F9WR8/UKN_:+2-_0!C,"ES0$E
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
M=AOE%I<ZT^NDNE=JU_1J8,U^@)"9;%$S[@,%P_1I>=E<AS>K&2!D)MW>K,%
MP3!=XRZQ8U8S0,A,NKW9()U+SYQBS?R\;C->V91+FBJ?^C4'7*SPO[H^ V;U
MA(OZVRX;N.HZ7%!U8^ 5G<]WCSNU,&TS1 ",VA;,LQ]@!"9WO/6G4A8J-'<^
M/^/9XIJ*Y1&]:63.N..X3)TIP0*1 E%J]'"VMA^7A2N2PM1:2Y_]"&/<+KC:
M+!*0'8,WU=I^9!;:UTU;\Q$2$6WVJ]!V(TS]Q!PZ*T8PAPYSZ/8OAZZKL>=W
M#1JPW8&AIFL/]R*%</BDDN!$85"6=Z;6/B<@.&7A:ZHLD@V"6V>^YL@$*0>7
MS>MOK5GD% 4W2V:JVC4V&YP"=F!$.PUM.2_!J=6^)Z Q]R X9=DWY[KP;W#+
MO/_7WII'8S@'_HH>]#T'[=D;AE/@KXC!4.JO2Z40?Y6^!N"^C[H?_@IZ]3T!
M%DF#AG/AKW+7L-J@JTSXJ\O5;1Y<TQ""VQPZ^::,4TR"P\,=&-(5@.VW2)T_
M=#S0=!CG! 0'FGN:$-?X;7 XNI_Y<$W+"PY/=M*:QBF74]&:)@PUK(JSY@2
MJ2A)2^X-TQ^FHA$[O'N3E*.I*,(N0M"5>7]@L2/S;D?+@U/^/:V$7K)&@_,U
M]#,YKB<S@O,\]#,=[D?3@W,_##DAVFH$3S,Q5B$:5OJ.MU1U*D+S?*@1"]#4
M$8+%9]Y6\9E^$BIK*@COW+*RV2556:VF[%#[ 48H4P*//Y^KJL>J=M85%7<L
MIO(*MOP&IMH[^&?BF(@,=*S:?TJ(TG*(J:WY^ P QF*Q(?7/VHY/^A%+B[SQ
MD$Y+ZS&KHM2XP]I.0]AU'H$Y=><7$-5<AJ>FQ2CGP#=I0,H&4Z$LEA4@)9O8
M!>SU!W3.!=T)=1\_P(H%J AJ5:Q+=U=YN6*6 U  ^A:G64X%E9H*!T,_<:QI
M-"W %%SAI>T$MAW^KVTU!KG*1:S6=S63K1*G;X['8S6D/@8Q6PG6M!R!;!6(
M!BW!GQ.E%W"S3F.<2 .05,1Y(50\NJPJV_02=$W'(+R\U62KZ%]F23S>2Z32
MAN"_!%1B(U_.(XUP'(R6V])G4.N"J.M,9LD23&^%='-VUR*$=IWQ@-[^W<WP
M&V6+6T#FLSN0@ 7]6B@'VOE\@]=+["[/BUSF)%,BW\"-XRC!L/N*PA;+TG68
M<!G66:).8^!94SQKBF=-\:SI"Y8Z8ZO@TA,,[_$V=*<&EW9@>"5JDW\IN$P"
MPY7G (R#2Q=POD#1*'H17 * J0)J,UJ#"^4;+D$')W5P07HS5EN]/\'E_)L>
M^C1Q'IKN_*%=FZUUZ9HR%1J>L7'CF?(8&G;Q%D4QG:#0T$^?!]&#NY.Z>QF4
MX.Z,-DL,""X)OI5L#8LUOIG@+,@N_-4F&)AR&!I&[>9>#$YNG=EQF)(IR/F
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
M!;.[&?+=L^7L*0@!"T#RE"7J)JWHAJ0DBVDD;^E.4*0]WF PR-"A!6,2,(J
M402'>Y3BF!=9+B_(6FGHPT*(G6WBY85*VL;C$7])8\KNRO/J-#=C0==E%$9
MMR=GC-RP%'0&E:U<Z-N/PD*Q+%*EIH[H2M"859?/4M"+Y<Z6);,E%SG[N_S^
M0G  A_E:54?+U5G OPJV6FHY[G7X$28H2<K=@*07A"6GV2%9L9RD3?SJ6X]
MONY<T]BGF:KGMZR9NC8CDSJ[D266,B'Y95O_I!\2>0MK2?VCUM,=2562URP_
M)$*L ?SI;E*QZCL":WRY9'F9M*:H!(@+--$L!LW:Q%![CW'8X%E98DK[,AJ:
MC4'P:V-BNZNM]>O9INL8!T+G%$AX=D3^B;J42,GFC*H2JK&62^=QPF!9[;\M
M)V)-.HW'#%BV(%A@SNY@+4",+=RT]/+/SF?.DWN6-J&-ES_[)_!QQN@.-&^@
M5MMV#-)SDBT8T% )+;SHXX>-/Z1EWFVZCL'8'2@4+M;- E_7Q#^A.ZNL@<Z:
M%J.2"9"AW'YO>9I0(8_+V[_;:==V&Y4A_5X=DJ'ZFI86%-[>800F>+90)86.
MZ$V+PT/3<ERR6Z&/OK%_XL]75!"%\L\HD=00I9IU"H:9UI=BW&]LEBY52:[S
M^3=9;:U&[#3T&8&5_):*#21H?2.ZMB.1O@M[C>C7=O#/Q(78 /E64UK3<A2R
M5X25==4RV>++U[8=@_0&AZWN=GFS3@$QTPRD3;J,D7F<$Y;1Y)@(5<]0/O/"
MSUG,FM@Q[XAYQ7MZM9B):1.2,?.:EA:[H+V#?R:N17G\>MVZ;S4WQ#1T3'O#
MM#=,>WO!DD$L,ICS V8T[S#G$)T,[C4:,VN> A-<IJ(QC\U^Z6 2\:UY,K#8
M@DG%=WAAK3&=8%+R[5=<<^J)(5/^:L!;B*.Y\6W(I;_KF6R4Y0!Y9X;SX>_:
MI>YOW571^KL\R9C'^LBKZ88?(+RQ#S.;,AL@O+')*#%E,T"$8Q&Y,.4R0,QC
M$-PPY2Y T--!)(,Y'609) _.1C0@O,9VTIV ",XRM&;1Y&Q!<')JQZ5]]FAP
MAJ,=PS:)",&9D7:LMJ:\!&=)6O+7S]+T9U.ZO[Z.F[X_@]*.1:L\X>",13=>
M'3/8@S,C>U&[7<%LJ/C(-)DG//O2606';E':XB+#8TW!P2'3R)Q9T#XX.\6
M\.>Q GU:6G!&BAU_^A-LP=DF=LP9G?T-</W9\&B;(!:<26+';ENZ37 6B1U[
M;7E<P5DD=NS9G<!Y8G;X*ON?(EFL5E6V"TFCF,C;:)[R^XAE<RZ6)=B.9'Q+
MDR(MK]$U:.Y6E=\#)5ZJ^'OC ^OU8+T>EQH,)18HDT  )12"RM/*Q$H.BOPK
MS_^;Y@HUO.#!M?NH!X$5(;JCITT-1SD"3&$J\S:*:UOY)U=9Y:"H5)*45/8=
M;&HGU47JV:*TG%HRGZW[8Y+_'B;Y[^Q[*G'R!':]TZ=-KRUYWJXW)J5C4CHF
MI6-2^DN67+1(>*X]2RZX(:0([Z5V852/]@)T^9D(L".2"DZ$[?G@78T2GVZ6
M#Y^B5,7O9/5/%'/I?'NAP5!>'!WFA*"G CT5#K5>E%0=@E U6 "O?A^1Q+8*
M0$WMQBYRHIG>YH9C$WU!UF5\V8CPEXW')OXWJC*M:3*[@V\7](C),B'T$E3K
MIN"]$5OFPP3&\"55>F_[HTK3^N#"L&:8$3P9MUSDBH:V-=7<$!U<^^?@^I4(
MIBAHDXK&=NBT0J<5.JW0:?6"I18T&9QMWTQO8Y[K:RT8W+LRXJI%M0?G=#)B
MJ@W%!)=99L15-V8\'F6Q7TWU-E!P*6,.G-E:!<'ED77GN=7T\^GG_!B)ZJ(W
M^#?FB^HIC]\E3)+%0@ ^*>\B6T?Y+8V6ZE;*2)$J53;4@O-$1B1+(DG%'8OA
M6\G3Q-%9ZHT>+QY7S]R@VQ;=MN^DR'<L7OCTDCQUO^R%X$D1Y^?BJI*J&AK;
MFGDEM,S"W2R VA=NU'9")'<1V-=*MKHI.%N D4)%%:P[ B64\K*0R_-[@[>^
M#HLN/1!WS7E:/>4+B6_AH6+=3%9KXU$* *L764^SKLT8)7Z=K[-]5?.WX\6X
MZ#X=QWV*OLC.C+1NC]QJ4YJ<F]4,'@3CVC)[%=Q(60?E0.XLAYU<RL-[[\Q?
MG 4R",:-9\>=%1SS^P8Q<(.!F_T+W'0&N%Y3%M]'K,R9C7+RL/OG2O [)MT/
M>MH/[">=T9$L])*AE\SA&&952>6$@J(B*2ST357N YJ!3#=EBACV&HV=QR1[
M&VY:.HW&3*G3 1B=P:-MWY!97_^L;6MI;23([GW9=1Z/.3>N@F7GF2RY\68S
MQ(@GMHUX"HY\] 2&X$";D"<0C5LT;O?/N+7"IL%XS)QXM$%WP27#67%JM-D&
MER)GQJ(+G TN9\Z.57L<&%S"G!W#??+HKQ:T&8^6O/GV&":;5U!^(.5%%67B
M6?I4"Z\7!Z+#<T;P)SI3B>[%M^5>;$AHFFTS.[>:[47-]U=ELG<3G*P[]T#P
MSJ.J6VJ>UR^O(].PRQ#$P1_;[[;7(^Y4FX<=<Z-<7]Z7H"7?==!^&=QYT0V7
M/#4PT=XQ !=?31WU-O]>8^GU,1AY%);M-6H@%B]O6VMAS&:($!C=O=VQE:77
M5T&.2OSCM;"F#+SJ$  3S04F=4T#(!S^.(3/K+I6><[%/1&)L2SI>X?!GME^
M<<%E+FC.1 DWM]]:S$,?CYG2A%W=$D$/ $P\NT1&<R1_R$<%.7&75!T(*LN3
ME_>WD;2#/&D&"X!Y53V_>FMIRN])%C>%/RQZCLK6#J#10("7][0V,^LV7BA3
MT'J#LA'CAO<P8YP1XXP89\0X(\89O;OVN^"/B88?3:W+J<4<!_">33PF.8RQ
M-O'HY7#&V-2BG-;>\HF&.-U=G(8,^[OSUEW46YU6AKSZN^'6]>6^=O::8A2?
MUV@Z\=;F.C!E-'@TYGR)0,!@R]XO8,IT,!"L7R^0*?O!P"_'T*<IGZ$BJO:8
MJ"F'04$CQWP'K[E2OT0D!MTAJQI>*\&C\AJ39]<^%ADI8.NGKM7/NCW$3Y94
M#R1BBA2F2"G]S6A*XURP6#;7>FILY-\U?E!(T&!2SI[DO_Q34%K[<JW[[1%+
M705Y&-9>2[AAZR#(!RA[HE3L]@;U"RJV_A(6F_-E-$S0#!^QM(#-I3O++P8*
M@FFY);;">F=@8F_K3["L .HWQ66AY0&%+9<>W@+ 5Q=HS>*RKFQ5'>;X(1<$
MP![+B%B7J L,O?-Y<S&W,4D):^*!NB>&'6:KMG]8+&X*FS@P]Z(G1M4QJAYX
M5%W/B"D X,YX;G(Y!%:8R/.[;'<WF+\=;F9B!)4Q,82XAE !$%-?,/5E_U)?
MK('41/-<QK<=II9!T\V,F&BR3#=GQ$238;JZ(SP%.6 3D#QE27D7R>/7Y1TD
M,N?QG[<\A>F5$04NGI)5VN,:;N,.'<KH0I59]*+!YWW(ETN>7:EGG!<Y/#E3
M]4.;W=\F[7MPQ1\6RR(%;7Q'C^=SP,+R?/Z5WC]IX@O!LIC!RSC-0%@93\[G
MLX2O\AV8]HSJ[L/YM]%G25(*%DG5U?.GV>:2>NV5#D9]QF#ECT+FI4A?TE0)
M^36'+5/5KE62#6\ ]$]]KETCHYU'''4:KGG#JU+E.$H95>C$=4KZ&-W_]!R7
MRDW1PC/@0AOPT;:=(.GCQZ=,O,R!>)(O51 _H\D6KVA5HK[Q"*Y7M>KDSN;9
MY'UM:C<6R4J1@%+MIK>[##6BF_S%FI6:R*U1'PQ3[-]M[24H/I6RH,E1H>[$
MJ*!D)?%VB\1]I-#8+@V%$DC+XP<J8B8;X^3N P7#M$K2IGV\:H.! F.Z^XMN
M'V<DEC?&]_$SV[N.I]J&_HF^%I3(0JQ+FK382--RK#!OC_%"BYTXN*BAWK[A
MUMZ8T4+<NJ"AV0OB3J93<!&:]C=J[\,)+CQCS*2)519<#,68NU:].EKH5Y-Q
MTL]JQ(!P&.K&D"6]DR$X_6+ZHO1@+#C%8L%6%[-PHF':KC;21 .U7>UA0[:#
M.7C7CW5HR'5HA0JZ^T4-&0^M8$%O@3Q#_D,K8M ]JR:XV@6#!")-)R,8A-5K
MWH'/D\4?(U&E L*_,5]43U$9*N5]L_W>Q-#+L[R<,^Z14CQNC,>-2^?=ZQN<
MRQ(1L!\H_P$]HM6_L %^RT"D4IILDG0O*Q'\^[6+O?>!!V+TL<S4(TT%O>;0
M4K)DDX<+M%#0G$F9IKOI]BIH.=3X_KWVC6^MN=JZ29> &($)3T%/LCE3(*^:
M?DU<UWF<,%ANO*G$ID]@K-0HD&W[S1$>0'C;!&/ <C<LTP4_!WU68%/7JKD[
M#8+Y)'CL-?!CKWBB#D_4[5\ Q6(7GV@PQ<,F/;5XS+!&QT2C-%V RT0C-.;V
MU]1B,0.Y$28:G.EHB;8[;S??J__=P(3"-_\_4$L#!!0    ( .-%;5#?@WW
MY7X  #X@!P 5    =69P="TR,#$Y,3(S,5]L86(N>&UL[+UKD^,XKB#Z_4;<
M_\#M<V-/=83=W54]KYYSSF[DH[)/QE97YF1E]>Q$Q\8)6:(S-2V+;CTRT_/K
M+T%*LFSK04)\*&LV8J8K;4L$" (@"(# O__/ETU"GFB6QRS]CZ_>?O/=5X2F
M(8OB].$_OOK\:7GVZ>+Z^BN2%T$:!0E+Z7]\E;*O_N?_^'__GW__;\OECS2E
M65#0B*QVY/ZQ3".:7;(-)?_[_.X#69*W[_[\_;NSG\CG^POR[KMWWRV_^W[Y
M]OOE\G_\>Q*GO_X9_K,*<DHX$FDN/O['5X]%L?WSM]\^/S]_\[+*DF]8]O#M
MN^^^^_[;^NFOJL?AUZAH7F@__/MOY8_-HR=#/W\OGGW[PP\_?"M^;1[-XZX'
M^:!OO_W?/WWX%#[23;",4Z!("+CD\9]S\>4'%@:%(./H%$CO$_!I63^VA*^6
M;]\MOW_[S4L>?<6I3H@D7<82>D?7!/[]?'?="_.';^&);U/Z ,OT(5C1A.,L
MAGC,Z+K[O23+#EX#/'X /-[^ ?#XEZ[1BMV6\T8>;[8)_>K;R9C>TBQFT?O4
M,,K=PUK!_5,19(4-[$\'-HS_/2N"Q"SFIT.:QIFK,&H8YY,A#>/\D1KFC^,!
MS>&+0+0X15(1NP2>^L#_JAZ$ 0>4JH!7J?#6P/2EH'P_JK1F,S8+#R91KK>
MZ-L?WKZ32O9?X)O_NF1AN:%I<99R95'$Q>XZ7;-L(_1[#4:@*4=0>EZBE< N
MP;)JP@=3UAQWF;2IJ42D4_)G-&=E%LI-E8.&;9^FR\^?OOH?-6S"@1,)G;3
M__NW>VQ/YW*6U70.LG $M^J);T/&=U2^' =HKC.VT2$RTZ:<) 1'XGA-CEBE
M;6>L@WPE)E#FRX<@V'X++/0M38J\_D8PU?*[M\N:K>37_W7)=?@3Q^*)?F2
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
MR)@%YK%V>OG#$LH1+T4Y8DA07\=ID(9QD"SC?62O]6U5RG/#+;D2RGL&Q<$
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
M0_BOH'#@N4VC]YMMPG:4GM.4KN,"\!RM/XX9 MTQ31V4R^NJ(CQ98T,J=(C
MQW_)-]3Z,!-$=\O*-6*?:/84A[0[.O&1B; KC40@(A<6;/OW"Y97)<#VI1=Z
M^-XZ/*206,/+U=G'V@0PQZD941-[0O.B=>Q+!W.^2(YC-[20#MP/+-]?E;AG
M50XII,T^LB2B6<ZG&H=] 1W<*-@HCQXT5QI%$RV,GK ^<T1B \>)Q (I/U$N
M).LQ0U1U;$DW#6CSD1CKP)-8N_AT1/N1# F2")A^W=1#!&4:5)JAO7H?O%2&
M-E1P;/_R7K;:FF*<*@]NTQ(=16)69N<HMM9L3 MTFI@KU^3 [3.^%J1"9D$X
MOO5)>+X&J+H$Z%J;FLOE5O7L2[/?K-NHW=$$;D.")9R?I.Z-.H(,C8I4-A.A
M6Z^#.2PX_MU$IE:/65H2MQ)R%:=Q03_$3U#'H^"K%'.[4P85SW<_!7]GV442
M<).T/Z""& ')^1J0;'.Y1&4I<"%[9.H:KZL=$?@0@9#/D UF=9@!DL^&B_=(
MCD:$D*.8Y^8N:'XY>G' S_Y#3]BE4F/M<?K[*O^M9)*=)8(9^5_MPLJR2)/8
MB]0+@5N"-[DDN&&\/!M%S6E"%@6O&K< L@MRMH$JF?,K"FZ+,SK+@UM=;L<)
M?-'?R[P0!F!E'MXS?H;Z:UP\@H<O3A^N6-8]P;ZLO^DC8E,%\9"=Y1?B440E
M)3JAR)2:/N K%[>4"-_I"IG/);/\.RN5@#YJES6!NP'D>3\=/^F0!CB>65@T
MURDMJ4BX SQKEZ^P7_JOJ*B\@DY9Z1_:E; /X8"19K-S0O<,_IRNXB3A@MEN
MMK@D*_H0IRF4"8"&3N@JKS8FJ=W[MV>*E&L?Q<E92RI2D!B&H:;C($R6\2,-
MRS(:BNI49VETRXF:2?/H0 /F!5>!\EISZT/U8!I)@W3 (603%#9 8P$EVTJM
MA96HN"GF0%J3\.E6LKK&S.7">;/^N4UQ-+M!YY3&F].M^3X(OGG>K]-)9PFZ
MS4LUNLZL D[>5]Y"_.>>(PM2J9)R;Q.4K3HX")2L2PE )@#:KSQ874Z=^BN3
MU\CQ)M!@U6]$=3Z#5>SML5PRIS_[I)M\3(DF'K-?57);36:N6B])HIB8:075
M28FDLETRY[2<)7$$/B$"U:&%YD%=5YXZ&?V<^#EEQ8[FO,XT>GP6AN6F%#Y!
M?H#(BO@?0YYX_$#F8\@] %VYXO0QPPB5U?E/JIR_ATX"Y4FZ#Y:/L:5:O%R)
MUK.1Z7[WN-I+YF75H8M\& O#,HB:UZNZ_:7(,6IBY-E%W('.^Y<P*2$ ]B-C
MT7.<)#V"H_,JNAC:. A70J2""T:4[,P1:3JN OY5B#+<+<U#WYYOY;$%51Y;
M.J;EK%6RTQ 1-H66;K7&79,W(&ZI?8:L@;M/GP<OABF]@]03@V/;5A![X$1
M)Y]ENQ>.0/ZUW[MC:C1G*$+.QK3[,>MWHJB^9MZ\$\/;9CT!!,X:I:=N7,KT
M53.&.HCFZ=HB</^-2'X:5&JCST^]7'@\KO>D58F,7[4V3O6N"VW#I'1>F6@3
MR_#@61I!_@C?V6D:QC3?WRM2J$V$& 1?G4@#F(/Z1#4V,GNZC0_9(^3_YAER
MD9@9RKOEZO,RCU.:YQSC59P*=Y Z-^N]C.1B-2"VN;?&@K30F!73:JX%FT9@
MQX'8O=_RDFXS&L822[I-:%4%K.W/U&V4:WIX;/C7$!K.4O8-X8O*WW=/JREA
MA@^@.8)6K"%J(2UV0^_!!^-"P&ROEO/B[MU(]8<I5%[!EW[O'=J5_ _A@&JK
M;71.2&_J#+MGJW 1PY#1K0"-A"8,A1]<A1C4P@>66&+(#ST'7W,O"P[Y_=1>
M,JTOG?C\;@^5RF+.6J77!ZA#0K?L]H&E#P7--I=T58RD:PX]BF2MKB%M,Q3
M7 )0 E 7WM,X!\G*=&CEEW,&L^*''S;$/6XRT[OYQV>.^@AQ!WAH2IYXN>98
M 6^\?5=S!O\&5%U(:91#I;26#SI__T*S,,YI5W,YW?=T^45U? =[F<!!)MX6
MCY30"CK< &U?0=]WIJNZ;?*37\[W"RK:JC2O:1T5[%$A8OR,"CU33M,]AS*:
M^/RKSN#KA#U#]@*#TRV?(UR^%_21L3Z2B1NS,'D@7%4EMJ8"W [FS\99#P6#
MHA!WY?B7W[B53VV^9NAEFBBU?"U@5M=\+FG!*0V&2G<D4.UIC(3VCVI;+H$3
MX5W2P!;]'A2C?I:G@A.N.UIIC%S(44:WX"/BD@((%;M_S<E7'3/^YBOW J+
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
M^F[%5N[N-V61%UP_\C-ACV#V/H<4O9/Q7+'@"6",>!G 'AT/.Z]:(;^)4UD
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
M?C^Q+R(JD?#K&%6F_4CHLY^@KE/^91;U[BYX_BG@&BT.DOPC+6[6=S2GV=-
MWK_JB^CD_S$ UOWQP3/9U) ]I<DK$YGA*>=?Z0T$&,<>-ZCDW%R^%CI,=ICS
M%SH<I>J(^O(=%OP0!RM )*;Y61J)D\\C2SAE\_>_E4/)56JOH9EJ>'AW253#
M>. 2ITS/K8#SMI[Y+([H)-FC(CS>>0N9?Q49^=YRI!39BV'IZE;*+H+\\7,:
MIWG)A?]L Y[!'L$:>!(I2QTCNA*?#M 8B3$R \09$^ N2 .9J,S DD ,L073
MH)0GF_@*8DV/-/J1L4C/*!Y_<ZI5W _!MIC4D,D#@/9K%RO0N<LP5B6>)[[[
M*\M^O4YO,P:]2K3X;OS-J7S7#\$VWP%D\'9M)6R_C*= Z"[&4Z6>ZR2[G')8
MC]P N:1/-&'B1N-P2HG2.^C4NX&Q75D!@TA@[ '#LT)8!C4&PFINX3"')!$U
M?F(H<KJ6IB+@1^;H?9!QF^8A/PO#<E.*3,E+NH[#N,^(5G\1+5=C .RGN$H,
M"*U0\,1KRH1F>.JY+DZ]*B[C/$P86-%CMRE'GD87I>X<U393B996>[C^Z^./
M49=IDLRU&<JW%IJ/[/\]3Z'-RX/1W-7V.0"+J^:#Q7Q:_1X)M<YD]60,=[,
M4Z3.Q)+2=S1,@CR/N>JM*AS6P8Z;)\H-@R![H)]H420B,GS/U)))\_X*U4X
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
M7%8PE=@N!;IDCZ\LYY4OB$29M'&N>Q[-K=2I42[H*(=J?FD="R1] /5P1[>
M9/J@DY*D]2Y6A%1@6)<-B01IL)A=U%=O*=@D^L[YV*;HI#$SJ)-CW'0G!?8X
M-^*FF,?D7!SK]'Q2LSC>J3AQ3"[5Q##Q>9G'*;=B+]AF%:<"[$% Z+Z*N64T
M@D;VK39@T=_+O-AT%"\V/"PF*&P O&V!J."24 (F00-9.][K9;:(DUZ-)VDA
MNB 'J)(6K@M2TZA"EYR],AKA0N'WCY0$33A\SQ<0YGX^XIHX)0%9U70-]Y/S
M$,\V*?/,UK*95Y=W-&0/:?P/KLLC#BY>Q\%>FX>_E3''[2R-:K= 3'/^&V>+
MJ*H4WOXA#+.2MA]5U*U.<#"DB*WB:MV,\3$I$\IN+E2?4E.L MPT'OZ2Z&(H
M>2JH2-1JIR!RS9[CXA'RJ5)*=C3(('FJ^@KJ8Z=0>S1I];,-=V%"%R1>DX2E
M#S1;0*5\F#4)"O%& *3)8[%E1WPEY['=N%&# WN30VZ:49CGIZ H,_ZODI-X
MPD@VPCW=$&UO(Q*E!1GJM%-C-A>_[I2%4PV9J*S&U/K961#1C\&&<CD\Y]9C
M-% ]>_A15.WL[B&M5\X&L 3@BCK2 O*$PMFF)H$LFPT=0G*Y!4&-P.(Q8^7#
M(\GH0PQ-EL6F!'OA_F"4PLSY\>DA@$TP(]N,%30LN"41)OR9)RJZP11P0QM>
M3".QR:T$F?@7XD,UEH_2VR-\R'36Q7&0XS'(Z#D7\8CODF"U'2SU<<1A\&%L
M&*-S4$>^7 %\N0+H<#AOP&/\NZ8F@O/;=D/W$W$99A.F1S+'K;E QTA[<+Q;
M[M"SV%9<76-:;\$%0)5Z;=EJ235(2:9%GKG$X#[G=%TF'^*U?J+DZ:O&XVE[
M$/X#2WM<S(;5ILP1UP&A/S5D020V9'R:SJ-D'>RF% OKHZ];"6RJ.*ME9HP]
MCI2TOF$=W%B$^ML<\.P2+T8IS73)YR<A[V8HCTFSX[?V2!/3ZS0@SB>+;BX.
ME2G+UMD>'+D6$QTJ=;G[._I$4ZBGU.=.&7P0XTSI'- VGS6M"2JH>#>*(?2G
MA@RBHUX+PN?1?>]ZF[&H# OQB,[=ZY/;UN"#B?/J(["F!Z_*,#LR]47R[XF_
MI]GF9EU?^=9PO'>_:-#/?@C YTV*0TQ,79Z8.C_$.: W=@"X@$"KS=%AE*"'
MRT:" D.D]2]R=S2EST$"2&K(6\=;!H6M-;I/26NA84K,)LW,I(Q5B)#QR3F4
MKRZN&A&N7H*ZE:P[FE,.Z_&P>W65]SI8"4_C3:2$*4"P+64U"B?]V2LL9G<F
MUUD5-H'4KMOI;;FE&@M;EO^=4/B#X]K.U>YA4YU7T8WUQD'8/Q3M<1#,&K2
M>^K;ID%X-H6:'@*J^6T01U<LNP]>H+[3(TLBKMCY%_KA5N104X*QFB!M\^Y'
M6I <(/,C;5$DHA(TF-'0MS2+PX*?5OGQ-OR5E&D,:0=I_9EMY0$Y>!&Y=-4\
MR)LXE>/E7Z/#O-9)A+")VK'LZFHS.<LR_DA5'EQB3@3"-(F$-X!/@+1F0&X:
MQX*_T#&6Y8\#RY,6::+3[=-CO-W*)NO_R3DR@<1WEM>U8GL=QHA7,8XY11#6
M7<(5&D)F:T2(P$3?8G(Y39Q+[S+.PX1!,?LJ$Q@\?##CK9PJR"-D,H5)D.?Q
M.@Z;3*F\3:C'FE AS&4!;L&D%,+[_$A%)%\,(J@(6E/^+OR'XELQ8)!P30!.
MOM:/3+Q<>1ES/CFI:BM$\V_(=1\F:THEK#Q^2 7FJ71"PG<I*_IQ6)!H3Y7J
MJ9RL."HRC5EX07/Q>"G<EGFEXN%7#IN_Q-$D3.9)G^ NG9W-N/LQ//@S=>6:
M3>%BUS'8PVC&GM/'P['*;Z(CLZ,0[ =ICR-<+57PB^\SH<X2L ET=<N2$JF+
MP02NSF>0;'8PEBOOW@%0C#$[$6M$Y_![>(54F5L^<\ZZ%Y\IT68..;HWV^KD
M>\VGRNV()WK+"3W<GF+"2$:S>P<AVK<Z!\])L_'535FLT1Q;C16P4.=>B%93
MY)K*?_G!['.ZBI.D">;N;VMUG9.,#FRJLKTV LY+VF=56D36H$"6E8W^Q.(0
M[FLPP[7M'1#%6%'[-U&%W]=P5LG@*LMI(P#^"WT)'T%EB%/;2;W[_:WW@_P+
M?D"KQXRA&D :B1N:D&^1DIP_ C<^'ZJ#6,'')UN^0P8/XL!8Q!NZD&7RRXIP
M'8LYDSKY>$$<*I _D9$\):;2_*[)HQG+2NUZ=FI*:GM,^Q&Q=9E&(GVO.HP7
M@(#?!-1.HG9EG_93RBWKW&>BZ>'N$_BQI2^SAW$&GD2R3<>(]F\_2I#2;[^H
MO//JCGI+_#-$6Z9!,+>\PZV\#4L%,J)G60_C]#V&Y)KCX6RSC(17,\S_]\UW
M;_E6F9$G@+T@[[Y;?/>=^'_-2T%9/+(,MH1_(W]<_.Z/OU_\\0]_$HY$_NEW
M?UB\^^Z'^M$XSZ%"@TBS+(N\X'^(NH;\MRT-P51.=E!F@>\_(MF0?/\6(+[]
MX=_J\=[^GH-^5WWZ_D^_YQ"^UQE]T37\G[S(0"^;,-6U=^SV:<H*Y?<,[( T
MC!/Z45@-7,=_8#G__B+('V\S]L0-NNA\]SF'=.PF_>8,%D%6>%CE0_F:-D%A
MG5 64+(MR2V<Y?&DPIJDM&AL""8^A1QSR'$6J)/5KE40)6CP_K,?;Y)-9F N
M5]A3L]7S7:O1\U5&?RMI&N[.7N+>0J7J;TYMM-H/P;9PM."2!C#Y!4![[J&J
M0/6N#JJJI/3$A5W(7;)-$/?EZ&B\.94+^R%XXD()?#Z]Y?OH/M)5?I"8_OD0
MCJ1EEG'-W7US"_&J04X\!F&;%?=]IR'7NP*M>,7+(2OV4GZ$%X?)Z>T@*4^U
M9\T9:OQ,V??&]./E\<AN3YHGQTGO7@H5HG<?UH8IZ9G9KL4Y6971#I\VQ61R
M5"\,5KD)9L=<1X0>8JPNZGECJML@N\D^05Y8)'3N+959H.,,-O;F=&;K@^"6
M\1KWF6"ZB"5)D.6$GQHE WKGO]%UZ.9%->*ZOE4EPE2BAW-'E$NMD EN$/1=
M*QU@]H-,,NHI8J$U/B+'G]08S2:+ [E,S SM7=_#DC'O^^!%)D^!Q(F(^5F2
ML.<@#?OTK<:;Z%M8HQ!<9>TIH(+)Y;,R0\0]E*8 !]PMJ?NB-;B0!ID%$;F
M_J<ZI>3Y?EZ!VMI9NTZG+D!L B$G*90\*UK*A'\Z5B3\J_^Z@ZR:3E='SZ^:
M"N%H%.O9AI"2E!=Q&"2D[4?SXCWKHR ;(8OC&IP'-^'K+IT].\?PP]@JG)V#
M6B_#64-=5)&N():7].I;,.U;-)L6+[$U243R6J+:D\)6'<_AQ6!Z%+:O:WX*
M7N)-N>G5-IV_(_3-P3C6O?42F!^G:#_5V"@I'*QWG ZO=]?OF/5NCV-]O24P
MC^O=234V2HH9M7J2CUS7-RE_9"QZCI/D>,]Q#-9W0Z<>]*RG XHK0G$+5Z5[
M0J^%&)-;",DKA'5[A?8%X(<*J2^T"]"8N-AH_*.T[!,UV<<2E./->E]63=S.
MZ6PN-_8L1F?TC>FD65L?<&UA-S<+A--# @?Q%.!EK3__,T$V<($:.[G,R(/N
M8\W<Y"FC$'4,)4H>-,JH!# M,MJW.F]E5=:;[).\'M21U#;V&,(&[1K.MD#?
MMNK/5F!])*N-4I.IDFBB8A]QW3>["FPR_'_@AKNE&5S(#!Y.7.7&!L1L$9,
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
M%L<?>7IJS>3#49T5"EN0I@'FW [28P3OJEP\1$7'Z8&"Z:L\Q1&W]."SV-3
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
M@P?DGW2S91FWID@4K_G+\NF(9O$3'T8DAV<GY/K&K3;1%T"&7R9S&D96K/X
M=6][B^!IO#)1JW0-;=W!#=":IJEZQ>ZLH#])OJKC6I"(-:C,UJ<@*>4'^/XY
M$.)S+(E":$Y$,*)1&19QOQ0*Z4L.:>A7] ;YLT/HQE?-M>TKC/'ZO'E</6_L
M>*;[.MHV5@-C_ZJ=/)()/NSN'LB/:YX/:MIKPJ82VBW+_A2$CW%*LUV[4L&@
MUU[A#21C#HQLFQ<;T*(F30/<K[]>A=(,0;Y9]+-@21SNQC2BUKMF.U@<PK">
M+%SW;!!_M/!8$(D)^:7ZU[="U%N2\48.0W1VRZCG00+VU:='2HL/E0TVD*4V
M]CB2'?N&M<V!%5PB ),:LL\$M5$",UVJ^>>GP=RT\1<,\I2;++4^KO*9JZ9
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
M"45"&J^PZUA-H0 3.@JCX7F$(HZ8(1"A*ENHRL8_<0924;0HT!RE@/T;O&8
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
MX [%GS94F@Z'9B@2<Y'\-Y4(2TS^TT) ;1R<$>-,<X!(\E17R "4]6MJ.;E
ME?2^/$8,R83RB!CUCQBU^C64E'L^#?OID#SVJW]_ B]H62U;?4GAWQV1QHY>
M*6EM?W=#VBTH%K!E.EO_YI DH:Q:_CH:1%)O\^@??S39M)RBC<^ 9/?LLQ((
MKK6-ARH@[!#":PCWJAY*42EE^[$\;3XCA*\8KEDGZUV338G"6OH73'WJ0EJS
MG?)L*S[>$)0*@:'!/SAY(:Y@RLS),\1KH!7;]D)DT.6W Q'M;SAGP_#'36[9
M_NE2L.U?GKA8;Q']\X+ UTQ@5T*5?7="(MV4R_V5-2SI9=$4TCQ(8ZC_>,;X
M>Y5#WP+N1L4(Q4U%G.Z,![;!Y:#X#)90&B<;\E.>!/>@UI 'DWV-U\G^(!/?
MH!^,@;L8N/,0N-/TH&*8+OPP73OR@17HP]2YEKOCRD?/^SQ!0Q&E.OHBP3Y"
MB<(I]4D32 E%'F*ED""N4V=>NJ5*P.^IQV'E?(OC$5/GVV4(?BHE,F((7J]8
MB&NH;NI[ZPC$*X>8@]O,W E8C8H&MTVZU%YAP$E;JD%<GG8%ZFE+-8C;M%[1
M>[=):=\G!*80/7$+A[[YMUVJF?9XCA+(#.F):6$'9'FX2*@]95K).(8*X#3%
MI@&SZ>TK477=P=.*\&U,E'.CU<G/[<1G_MCM!29GN'HHYU7^GE8%;R9C>'VW
M8D<-Y8_E2;EJ;>OS-848-9NL/][35A=C8>''PEP">5/!5R*0IW>7QL#&&$!'
MQE]ALINA,ARJ-MJ"=UHVD%O/]X<$%4_L)TQX$LE>OLGVUVM+%]A\8$>^L"UA
MT2GV[Q2;SYV6=VRK$J[?"*Q)N>"WH!]A5C]9P+:1Z_DM6Q[D2?A\FD%/CVPQ
M>E3TLR9^7_7<T'$+GC\Q_2$(Y&83H.SHD:G?,?GSLK@A.(74C"MUS^C<1^>^
M'^?>8J>.7G[T\J.7'[U\R0L2)H=S<'JB)QW=0_ZX<F6,3>OALEU&"WK(S'>W
M6,>/">:/@#!;H03% K'MD5^5@26/#,S9!)8P1T\P:_V[#032V_<<(2,]TQL!
M$V> R3T!&>2W469%=D) D;57?M!H.B1ZTYM^:8$Z/6NS2T=P^U;G%:*EO+2L
MI*5[LB]JJ5YQJ5Z^"G56RW26IM6RJE\!G"TQ*='?]9XEX,I\(*]I$!)R3]:?
MP!^8G.9,M20E9"Q&&!6;=6#,G+<WW4;%T$[FR@OYEJ/X@/K>4L?LL?.7S6/
MW&Y]1GDNQ/K477U"L_6[8\L5+.%L06!SB5.Z;ZH[1,PR8I;]8);]&2(1RCP>
M*-/&), ]G4JAR%"-A5H;7J' @+9JINU*A@((=ER/N@9'*-?A.HI+Z=>&LOYB
MC?<8L3($U,T<ZJ/,3.T!0#K"]%0;+]]M!.>G9$7X ^[E.EGE=26T(DO@7Q5:
MU6VD?[2+X?3X14=1G-XICG$<9W&<BXJPC:LB\ *]\/]09EGSR]=5"8D T#+L
M-F1\IT?-TXKP]*[I+H&SDXKMUOSY8.8[;?YYN60D/VF@ET9]/82O<$'929;R
M_:S.&6$>#U7$L32ZN&?DBND,DS'_C_;<:/7QP H$%#[BW( 1=0_W;'P"S,HI
M(%DS$9]O%[.4#8T>[MFXV6Q-O(ADN4_8R5KQV(1!SQ&Q)8L/ZG4:$3-<SM*(
MH$'/&&6*4:9^HDQ]&D,QSG0\<2:3 P5WV.-"D9<:K30^HD/!LBU5R<!B#@7R
MMI24A=\72CS)5K=TG1AM.8V\8**EG+2])&TYC;P$HJF<K& V;6']&):PC$&=
M4$[ &,V-T5S#H)L)_.$VV/9S@HH,/I0P*]BR37)<+-A&MTSX[RRC:29#.@J7
MF9,4XV$'9 UXKXG-Q!4&@H=LQ2V&C'*9*(Q6&,M< YT&<]CFBLH+D-:O#TB0
M:7%#WT1+P5I94_>$G[$YOZRM)JX?$FF+&_HF6GEA1M7<0W",+3F^D7#*1-&P
MEB9^"967VVUIZ?6.W#X]/!=6F_CWC7W4.7["^1,J%F\W"VG<4:M/#/_$\$\_
MX1\C(R+&=XXGOB,Q%+#IF1R*3"2F*C:Q#$.1AQJS41GWH0!X>IIA<+:'(ABU
MBJ@\DE DH=A05:!$^#AO?!DS0MWMP5BA#WV4EY1T7/3@=@MMB8C\?K<QD%\2
MD*9,)ED"7_@3>)"^_X5=*,1B9$<1$6O*8F#D@"P/%?(M)D\K2&&M%(Z?DN,4
M72'PP UR!-6OR+6W]UG+:$/4'<@!T>5 T-@;\;^!M-Z,M(@7-'9/_#4OTV.J
M0_).R4>/J"G,Y\Q1J0A_HF=3CE;.BT:/B%A'Q+H?Q-KF1(G ]?$ U[&6?P08
MS%_L4UI#P>F&5"+:)_IQ 0TZEN=P*"5/%X=C1*3,;-GAKDR,MD*.ML/H%J7Z
M\&V">'DYF)3@9?^?A#7C3R#C@D>HFD)'=G!5ET\XPJVZDQ@!+&< UOE\#M,2
M/<'+>I[NP<LMFZ7;-Y/$?GD""SA');U@B_7ND:WB!\"V 7[IACD(S=Z-:7D#
M2=KBU0[]'4=B^%)PW5T4Z&^8[9$ZR_ZH:%E?:+-E7'_D(2'++NM6"[OLOC&X
MA [:)^X4LU585*A87*\@J4D5X2#Z _B$.77T<U9>0&9!@)R?SA5_0^A-8R/^
MK48>IUA.'T&Q8 W.-C85:]04[/L-Y%7#WO9E[@XBLOC*N,5U7H"TK/GHJ#SR
M <<IA#.8-1<QZ7]5($=S!+,;@C>_F_'>M3G;02J:7_":A:[#QV?,34!.]D,.
MSQLD\A,$.;_MRTPA2-CY4"S%(/H@WYB.J&KKZ:3->NI97NH/C5-HC9,M-MYZ
M&&J<C+=/V/D+?U%R9WT*;/FAOS-2D7%#EM=&873EK^TZ;=.J(<<I"/;+)M>V
M"^N[0;P>0C&@.=EHQ'!N9HQLQLAFC&S&R*8@\- [IA&<(G46GYYA=%QQT@%]
MV0'"J^-/^>]HI0X0<0U#9K;8D[9 1U[-;MC5K(NT:$MSY.7N%-(<*KJF+;Z?
MCD)\W:*RVL+\>=+"= .+:0OSEV,1IDX(2-_$/AH710Y8ZPOL:)P2ZR"LOBS#
M>;_./O'!9[I>M6<FU+]XV)QZO63J:8_N)4G/D+J8GW= EH<+II83:)&H9:@<
M,83C)X0S#+$"YTE M:!U\OW4&?AA= R<P93P1Q7H+:15SD[6!??.;@C"A/D.
M"/.V-Y@B689B'T-KAG G%A089'N,L<486XRQQ5'$%E?U/L:^3\HQ>E":Y^@
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
MJDX8<_,7_G\/3&W9;_Y_4$L! A0#%     @ XT5M4)F8'JL:-P$ ;!02 !$
M             ( !     '5F<'0M,C Q.3$R,S$N>&UL4$L! A0#%     @
MXT5M4%<NE>K^%P  ZD$! !$              ( !23<! '5F<'0M,C Q.3$R
M,S$N>'-D4$L! A0#%     @ XT5M4 0WSW?+$@  A"X! !4
M ( !=D\! '5F<'0M,C Q.3$R,S%?8V%L+GAM;%!+ 0(4 Q0    ( .-%;5#?
M!,Z*:5L  "LH"  5              "  71B 0!U9G!T+3(P,3DQ,C,Q7V1E
M9BYX;6Q02P$"% ,4    " #C16U0WX-]P.5^   ^( < %0
M@ $0O@$ =69P="TR,#$Y,3(S,5]L86(N>&UL4$L! A0#%     @ XT5M4&VL
M;MRI80  /N4( !4              ( !*#T" '5F<'0M,C Q.3$R,S%?<')E
:+GAM;%!+!08     !@ & (H!   $GP(    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796603792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - Acquisition (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock', window );">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Consideration Paid:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 35%; font-size: 10pt; text-align: left">Cash paid at closing</td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">80,000</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White; width: 50%"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Working capital adjustment</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">250</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Cash from Dielectrics</td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,272</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Total consideration</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Purchase Price Allocation:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accounts receivable</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,384</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Inventory</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,418</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Other current assets</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">122</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Property, plant and equipment</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,600</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Customer list</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Non-compete</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 0pt; font-size: 10pt">Trade name and brand</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; padding-bottom: 1pt">Goodwill</td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">44,516</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Total identifiable assets</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">81,424</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accounts payable</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,325</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Accrued expenses</td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(946</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Deferred revenue</td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,175</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 0pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Net assets acquired</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">76,978</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock', window );">Business Acquisition, Pro Forma Information [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Year Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">(Unaudited)</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">(Unaudited)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">193,510</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">180,419</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Operating Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,464</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">18,990</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net Income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,110</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,126</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Earnings per share:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Basic</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.92</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.81</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Diluted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.90</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.79</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaInformationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116869197&amp;loc=d3e4845-128472<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6608855904">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Lease, Cost [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Year Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">December 31, 2019</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">($ in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Lease cost:</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 85%; font-size: 10pt">Operating</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,222</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Variable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">219</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Short-term</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total lease cost</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,468</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for amounts included in measurement of lease liabilities:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,208</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average remaining lease term (years):</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.69</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average discount rate:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.45</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Lessee, Operating Lease, Liability, Maturity [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; font-size: 10pt; text-align: left">2020</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,173</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,118</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">957</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">36</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2024</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Thereafter</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total lease payments</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,284</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Less: Interest</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(194</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Present value of lease liabilities</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,090</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock', window );">Schedule of Future Minimum Rental Payments for Operating Leases [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,051</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,070</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,063</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">975</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">2023</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">36</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,195</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of future minimum payments required in the aggregate and for each of the five succeeding fiscal years for operating leases having initial or remaining noncancelable lease terms in excess of one year and the total minimum rentals to be received in the future under noncancelable subleases as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6949587536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Summary of Significant Accounting Policies - Compensation Cost Charged Against Income (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember', window );">Selling, General and Administrative Expenses [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">$ 1,591<span></span>
</td>
<td class="nump">$ 1,212<span></span>
</td>
<td class="nump">$ 1,068<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778807616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Supplemental Cash Flow Information (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_CashlessExerciseOfStockOptions', window );">Cashless Exercise of Stock Options</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 172<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_CashlessExerciseOfStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the value of shares surrendered to pay for the strike price of the options exercised.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_CashlessExerciseOfStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6784008752">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 5 - Inventories - Summary of Inventory (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 10,540<span></span>
</td>
<td class="nump">$ 11,727<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work in process</a></td>
<td class="nump">2,279<span></span>
</td>
<td class="nump">2,521<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">5,457<span></span>
</td>
<td class="nump">5,328<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Total Inventory</a></td>
<td class="nump">$ 18,276<span></span>
</td>
<td class="nump">$ 19,576<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116846819&amp;loc=d3e3927-108312<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcessNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -URI http://asc.fasb.org/extlink&amp;oid=27011343&amp;loc=d3e100047-122729<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcessNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R88.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778842480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 19 - Acquisition - Pro Forma Information (Unaudited) (Details) - Dielectrics [Member] - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaRevenue', window );">Sales</a></td>
<td class="nump">$ 193,510<span></span>
</td>
<td class="nump">$ 180,419<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax', window );">Operating Income</a></td>
<td class="nump">19,464<span></span>
</td>
<td class="nump">18,990<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net Income</a></td>
<td class="nump">$ 14,110<span></span>
</td>
<td class="nump">$ 13,126<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 1.92<span></span>
</td>
<td class="nump">$ 1.81<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 1.90<span></span>
</td>
<td class="nump">$ 1.79<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of pro forma income from continuing operations as if the business combination had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaIncomeLossFromContinuingOperationsBeforeChangesInAccountingAndExtraordinaryItemsNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=ufpt_DielectricsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786741344">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Significant Accounting Policies [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Summary of Significant Accounting Policies</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">UFP Technologies, Inc. (&#x201c;the Company&#x201d;) is an innovative designer and custom converter of foams, plastics, composites and natural fiber products principally serving the medical, automotive, aerospace and defense, consumer, electronics and industrial markets. The Company was incorporated in the State of Delaware in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1993.</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(a)</div></td> <td><div style="display: inline; font-style: italic;">Principles of Consolidation</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The consolidated financial statements include the accounts and results of operations of UFP Technologies, Inc., its wholly-owned subsidiaries, Moulded Fibre Technology, Inc., Simco Industries, Inc. Dielectrics, Inc. and UFP Realty LLC, and its wholly-owned subsidiaries, UFP MA LLC, UFP CO LLC, UFP FL LLC, UFP TX LLC, UFP MI LLC, and UFP IA LLC. All significant intercompany balances and transactions have been eliminated in consolidation. The Company has evaluated all subsequent events through the date of this filing.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(b)</div></td> <td><div style="display: inline; font-style: italic;">Use of Estimates</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The preparation of consolidated financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, including allowance for doubtful accounts and the net realizable value of inventory, and the fair value of goodwill, and disclosure of contingent assets and liabilities at the date of the consolidated financial statements, and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(c)</div></td> <td><div style="display: inline; font-style: italic;">Fair Value Measurement</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company defines fair value as the price that would be received from selling an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. When determining the fair value for assets and liabilities, which are required to be recorded at fair value, the Company considers the principal or most advantageous market in which the Company would transact and the market-based risk measurement or assumptions that market participants would use in pricing the asset or liability, such as inherent risk, transfer restrictions, and credit risk.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company has <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> elected fair value accounting for any financial instruments for which fair value accounting is optional.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(d)</div></td> <td><div style="display: inline; font-style: italic;">Fair Value of Financial Instruments</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Cash and cash equivalents, accounts receivable, accounts payable, accrued expenses and other liabilities are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the Company&#x2019;s current incremental borrowing rate.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(e)</div></td> <td><div style="display: inline; font-style: italic;">Cash and Cash Equivalents</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company considers all highly liquid investments with original maturities of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div> months or less to be cash equivalents. At <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> the Company did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div></div> have any cash equivalents.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company maintains its cash in bank deposit accounts, money market funds, and certificates of deposit that at times exceed federally insured limits. The Company periodically reviews the financial stability of institutions holding its accounts and does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> believe it is exposed to any significant custodial credit risk on cash. The amounts contained within the Company&#x2019;s main operating accounts at Bank of America and TD Bank at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div>exceed the federal depository insurance limit by approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$4.7</div> million.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <!-- Field: Page; Sequence: 40; Value: 1 -->  <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(f)</div></td> <td><div style="display: inline; font-style: italic;">Accounts Receivable</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company periodically reviews the collectability of its accounts receivable. Provisions are recorded for accounts that are potentially uncollectable. Determining adequate reserves for accounts receivable requires management&#x2019;s judgment. Conditions impacting the realizability of the Company&#x2019;s receivables could cause actual asset write-offs to be materially different than the reserved balances as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019.</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(g)</div></td> <td><div style="display: inline; font-style: italic;">Inventories</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Inventories include material, labor, and manufacturing overhead and are valued at the lower of cost or net realizable value. Cost is determined using the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-in, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-out (&#x201c;FIFO&#x201d;) method.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company periodically reviews the realizability of its inventory for potential excess or obsolescence. Determining the net realizable value of inventory requires management&#x2019;s judgment. Conditions impacting the realizability of the Company&#x2019;s inventory could cause actual asset write-offs to be materially different than the Company&#x2019;s current estimates as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019.</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(h)</div></td> <td><div style="display: inline; font-style: italic;">Property, Plant, and Equipment</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Property, plant, and equipment are stated at cost and are depreciated or amortized using the straight-line method over the estimated useful lives of the assets or the related lease term, if shorter.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Estimated useful lives of property, plant, and equipment are as follows:</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.75in"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.65in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Leasehold improvements</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center">Shorter of estimated useful life <br /> or remaining lease term</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; width: 63%">Buildings and improvements (in years)</td> <td style="font-size: 10pt; width: 1%">&nbsp;</td> <td style="text-align: right; font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20</div></td> <td style="text-align: center; font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">- </div></td> <td style="font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">40</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Machinery &amp; equipment (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="text-align: right; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div></td> <td style="text-align: center; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Furniture, fixtures, computers &amp; software (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="text-align: right; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div></td> <td style="text-align: center; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div></td> </tr>  </table> </div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Property, plant, and equipment amounts are reviewed for impairment whenever events or changes in circumstances indicate that the carrying amount of an asset <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be recoverable. An impairment loss would be recognized when the carrying amount of an asset exceeds the estimated undiscounted future cash flows expected to result from the use of the asset and its eventual disposition. The amount of the impairment loss to be recorded is calculated by the excess of the asset&#x2019;s carrying value over its fair value. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No</div> events or changes in circumstances arose during the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>that required management to perform an impairment analysis.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(i)</div></td> <td><div style="display: inline; font-style: italic;">Goodwill</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Goodwill is tested for impairment annually and will be tested for impairment between annual tests if an event occurs or circumstances change that would indicate that the carrying amount <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be impaired. Impairment testing for goodwill is done at a reporting unit level. Reporting units are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">one</div> level below the business segment level but can be combined when reporting units within the same segment have similar economic characteristics. An impairment loss generally would be recognized when the carrying amount of the reporting unit&#x2019;s net assets exceeds the estimated fair value of the reporting unit. The Company consists of a single reporting unit. The Company last performed &#x201c;step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1&#x201d;</div> of the goodwill impairment test as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018. </div>In testing goodwill for impairment at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018, </div>the Company primarily utilized the guideline public company (&#x201c;GPC&#x201d;) method under the market approach and the discounted cash flows method (&#x201c;DCF&#x201d;) under the income approach to determine the fair value of the reporting unit for purposes of testing the reporting unit&#x2019;s carrying value of goodwill for impairment. The GPC method derives a value by generating a multiple of EBITDA through the comparison of the Company to similar publicly traded companies. The DCF approach derives a value based on the present value of a series of estimated future cash flows at the valuation date by the application of a discount rate, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">one</div> that a prudent investor would require before making an investment in our equity securities. The key assumptions used in our approach included:</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 41; Value: 1 -->  <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 45.35pt"></td> <td style="width: 18pt">&#x2022;</td> <td>The reporting unit&#x2019;s estimated financials and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">five</div>-year projections of financial results, which were based on our strategic plans and long-range forecasts. Sales growth rates represent estimates based on current and forecasted sales mix and market conditions. The profit margins were projected based on historical margins, projected sales mix, current expense structure and anticipated expense modifications.</td> </tr> <tr style="vertical-align: top"> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr>  </table> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 45.35pt"></td> <td style="width: 18pt">&#x2022;</td> <td>The projected terminal value which reflects the total present value of projected cash flows beyond the last period in the DCF. This value reflects a growth rate for the reporting unit, which is approximately the same growth rate of expected inflation into perpetuity.</td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 45.35pt"></td> <td style="width: 18pt">&#x2022;</td> <td>The discount rate determined using a Weighted Average Cost of Capital method (&#x201c;WACC&#x201d;), which considered market and industry data as well as Company-specific risk factors. Selection of guideline public companies which are similar in size and market capitalization to each other and to the Company.</td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">As of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018, </div>based on our calculations under the above noted approach, the fair value of the reporting unit significantly exceeded the carrying value of the reporting unit. In performing these calculations, management used its most reasonable estimates of the key assumptions discussed above. If the Company&#x2019;s actual operating results and/or the key assumptions utilized in management&#x2019;s calculations differ from our expectations, it is possible that a future impairment charge <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be necessary.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company&#x2019;s annual impairment testing date is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31. </div>The Company performed a qualitative assessment (&#x201c;step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0&#x201d;</div>) as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and determined that it was more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> that the fair value of its reporting unit exceeded its carrying amount. As a result, the Company was <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> required to proceed to a &#x201c;step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1&#x201d;</div> impairment assessment. Factors considered included the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div> analysis and the calculated excess fair value over carrying amount, financial performance, forecasts and trends, market cap, regulatory and environmental issues, macro-economic conditions, industry and market considerations, raw material costs and management stability.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0; text-indent: 45pt">Approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$47.9</div> million of goodwill is deductible for tax purposes.<br /> </div></div><div style=" font-size: 10pt; margin: 0pt 0; text-indent: 45pt"><br /> </div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(j)</div></td> <td><div style="display: inline; font-style: italic;">Intangible Assets</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Intangible assets with a definite life are amortized on a straight-line basis, with estimated useful lives ranging from <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div> to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20</div> years. Intangible assets with a definite life are tested for impairment whenever events or circumstances indicate that their carrying values <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be recoverable. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No</div> events or changes in circumstances arose during the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>that required management to perform an impairment analysis.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(k)</div></td> <td><div style="display: inline; font-style: italic;">Revenue Recognition</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Beginning in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> the Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">606</div> which include (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div>) identifying the contract with a customer, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div>) identifying separate performance obligations within the contract, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div>) determining the transaction price, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4</div>) allocating the transaction price to the performance obligations, and (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div>) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery primarily upon customer acceptance, with the exception of certain tooling where control does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> transfer to the customer, resulting in revenue being recognized over the estimated time for which parts are produced with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. The Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer. In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&#x2019;s promise to transfer the good and are expensed when revenue is recognized.</div> <div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">For the year <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> prior to ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">606,</div> the Company recognized revenue at the time of shipment when title and risk of loss have passed to the customer, persuasive evidence of an arrangement exists, performance of its obligation is complete, its price to the buyer is fixed or determinable, and the Company is reasonably assured of collection. Determination of these criteria, in some cases, requires management&#x2019;s judgment.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt"></div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt; text-indent: -45pt"></div> <!-- Field: Page; Sequence: 42; Value: 1 -->  <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(l)</div></td> <td><div style="display: inline; font-style: italic;">Share-Based Compensation</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">When accounting for equity instruments exchanged for employee services, share-based compensation cost is measured at the grant date, based on the calculated fair value of the award, and is recognized as an expense over the employee&#x2019;s requisite service period (generally the vesting period of the equity grant). Forfeitures are expensed as they occur.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company issues share-based awards through several plans that are described in detail in Note&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12.</div> The compensation cost charged against income for those plans is included in selling, general &amp; administrative expenses as follows (in thousands):</div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="text-align: center; font-size: 10pt">&nbsp;</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Share-based compensation expense</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,591</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,212</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,068</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The compensation expense for stock options granted during the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>-year period ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019,</div> was determined as the fair value of the options using the Black Scholes valuation model. The assumptions are noted as follows:</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <div> <table style="border-collapse: collapse; margin-left: 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 54%; font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected volatility</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28.9</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.7</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 5%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.4%</div></td> <td style="width: 5%; font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="width: 5%; font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">29.1%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected dividends</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Risk-free interest rate</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.56%</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.84%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-indent: -6.85pt; padding-left: 6.85pt">Exercise price</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">38.61</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31.20</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$27.05</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> - </div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$28.70</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected term (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> to </div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.8</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Weighted-average grant date fair value</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12.70</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.15</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$5.59</div></td> <td style="font-size: 10pt; text-align: right"><div style=" font-size: 10pt; text-align: center; margin: 0pt 6.75pt 0pt 5.5pt"></div><div style=" font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$8.51</div></td> </tr>  </table> </div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The stock volatility for each grant is determined based on a review of the experience of the weighted average of historical daily price changes of the Company&#x2019;s common stock over the expected option term, and the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding with the expected term of the option. The expected term is estimated based on historical option exercise activity.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The total income tax benefit recognized in the consolidated statements of income for share-based compensation arrangements was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$653</div> thousand, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$544</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$525</div> thousand for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(m)</div></td> <td><div style="display: inline; font-style: italic;">Shipping and Handling Costs</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Costs incurred related to shipping and handling are included in cost of sales. Amounts charged to customers pertaining to these costs are included in net sales.</div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(n)</div></td> <td><div style="display: inline; font-style: italic;">Income Taxes</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company&#x2019;s income taxes are accounted for under the asset and liability method. Under the asset and liability method, deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax basis and operating loss and tax credit carryforwards. Deferred tax expense or benefit results from the net change during the year in deferred tax assets and liabilities. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period that includes the enactment date.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 43; Value: 1 -->  <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company evaluates the need for a valuation allowance to reduce its deferred tax assets to the amount that is more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> to be realized. The Company has considered future taxable income and ongoing prudent and feasible tax planning strategies in assessing the need for a valuation allowance. Should the Company determine that it would <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be able to realize all or part of its deferred tax assets in the future, an adjustment to the deferred tax assets would be charged to income in the period such determination was made.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company recognizes the tax benefit from an uncertain tax position only if it is more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> that the tax position will be sustained on examination by the taxing authorities, based on the technical merits of the position. The tax benefits recognized in the consolidated financial statements from such positions are then measured based on the largest benefit that has a greater than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50%</div> likelihood of being realized upon settlement. The Company recognizes interest and penalties accrued related to unrecognized tax benefits in tax expense.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(o)</div></td> <td><div style="display: inline; font-style: italic;">Segments and Related Information</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company follows the provisions of Accounting Standards Codification (ASC) <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">280,</div> <div style="display: inline; font-style: italic;">Segment Reporting</div>, which establish standards for the way public business enterprises report information and operating segments in annual financial statements (see Note <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17</div>).</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"><div style="display: inline; font-style: italic;"></div></div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"><div style="display: inline; font-style: italic;">(p)&nbsp;&nbsp; Treasury Stock</div></div> <div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company accounts for treasury stock under the cost method, using the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-in, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div> out flow assumption, and we include treasury stock as a component of stockholders&#x2019; equity. The Company did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div></div></div> repurchase any shares of common stock during the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017.</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 27.35pt"></td></tr></table><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(q)</div></td> <td><div style="display: inline; font-style: italic;">Research and Development</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">On a routine basis, the Company incurs costs related to research and development activity. These costs are expensed as incurred. Approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$9.5</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$10.5</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$5.0</div> million were expensed in the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div></div><div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;"></div></div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">Recent Accounting Pronouncements</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 2016, </div>the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2016</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">02,</div> &#x201c;Leases (Accounting Standards Codification (ASC) <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div>),&#x201d; and issued subsequent amendments to the initial guidance in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2018 </div>within ASU <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">01</div> and in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> July 2018 </div>within ASU Nos. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.</div> The Company adopted ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div> on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019. </div>See Note <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13</div> for further details.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2017, </div>the FASB issued ASU <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">04,</div> Intangibles&#x2014;Goodwill and Other (ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">350</div>), Simplifying the Test for Goodwill Impairment. The guidance removes Step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div> of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&#x2019;s carrying value exceeds its fair value, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 15, 2019. </div>Early adoption is permitted for any impairment tests performed on testing dates after <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2017. </div>The Company does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> believe adoption will have a material impact on its financial condition or results of operations.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 2016, </div>the FASB issued accounting standard that requires companies to utilize an impairment model (current expected credit loss, or CECL) for most financial assets measured at amortized cost and certain other financial instruments, which include, but are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> limited to, trade and other receivables. This accounting standard will replace the incurred loss model under current GAAP with a model that reflects expected&nbsp;credit losses&nbsp;and requires consideration of a broader range of reasonable and supportable information to estimate those losses. Effective <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2020, </div>the Company adopted this standard. The adoption of this standard is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> expected to have a material impact on our Consolidated Financial Statements.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 44; Value: 1 --> </div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;"></div></div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">Revisions</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Certain revisions have been made to the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div> Consolidated Statements of Income to conform to the current year presentation relating to a reclassification of material overcharge settlement to selling, general and administrative expenses. The reclassification resulted in the removal of the material overcharge settlement line item and a decrease in selling, general and administrative expenses of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$104</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$121</div> thousand for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively. These revisions had <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div> impact on previously reported operating or net income and are deemed immaterial to the previously issued financial statements.</div></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -URI http://asc.fasb.org/topic&amp;trid=2122369<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6785494528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Leases (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
<th class="th"><div>Jan. 01, 2019</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="nump">$ 3,034<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</a></td>
<td class="nump">3,090<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Finance Lease, Liability, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseAndRentalExpense', window );">Operating Leases, Rent Expense, Total</a></td>
<td class="nump">$ 1,200<span></span>
</td>
<td class="nump">$ 1,200<span></span>
</td>
<td class="nump">$ 900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member', window );">Accounting Standards Update 2016-02 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,100<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from finance lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseAndRentalExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of rent expense incurred for leased assets, including but not limited to, furniture and equipment, that is not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseAndRentalExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6781669984">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Parentheticals) - $ / shares<br></strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">20,000,000<span></span>
</td>
<td class="nump">20,000,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">7,475,768<span></span>
</td>
<td class="nump">7,415,002<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">7,446,209<span></span>
</td>
<td class="nump">7,385,443<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockShares', window );">Treasury stock, shares (in shares)</a></td>
<td class="nump">29,559<span></span>
</td>
<td class="nump">29,559<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6783874848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Stock Option and Equity Incentive Plans - Compensation Cost (Details) - Selling, General and Administrative Expenses [Member] - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">$ 1,591<span></span>
</td>
<td class="nump">$ 1,212<span></span>
</td>
<td class="nump">$ 1,068<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_CommonStockMember', window );">Common Stock [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">400<span></span>
</td>
<td class="nump">505<span></span>
</td>
<td class="nump">505<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember', window );">Employee and Nonemployee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">151<span></span>
</td>
<td class="nump">149<span></span>
</td>
<td class="nump">138<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">$ 1,040<span></span>
</td>
<td class="nump">$ 558<span></span>
</td>
<td class="nump">$ 425<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -URI http://asc.fasb.org/extlink&amp;oid=115993241&amp;loc=d3e301413-122809<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_CommonStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_CommonStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R84.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6798895024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Segment Data - Net Sales by Market (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Sep. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Mar. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Sep. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Mar. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 50,260<span></span>
</td>
<td class="nump">$ 49,394<span></span>
</td>
<td class="nump">$ 51,399<span></span>
</td>
<td class="nump">$ 47,328<span></span>
</td>
<td class="nump">$ 50,697<span></span>
</td>
<td class="nump">$ 47,808<span></span>
</td>
<td class="nump">$ 49,019<span></span>
</td>
<td class="nump">$ 42,931<span></span>
</td>
<td class="nump">$ 198,381<span></span>
</td>
<td class="nump">$ 190,455<span></span>
</td>
<td class="nump">$ 147,843<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_MedicalMember', window );">Medical [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 128,915<span></span>
</td>
<td class="nump">$ 110,282<span></span>
</td>
<td class="nump">$ 70,090<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65.00%<span></span>
</td>
<td class="nump">57.90%<span></span>
</td>
<td class="nump">47.40%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_AutomotiveMember', window );">Automotive [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,004<span></span>
</td>
<td class="nump">$ 20,022<span></span>
</td>
<td class="nump">$ 23,119<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.10%<span></span>
</td>
<td class="nump">10.50%<span></span>
</td>
<td class="nump">15.60%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_ConsumerMember', window );">Consumer [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17,669<span></span>
</td>
<td class="nump">$ 24,989<span></span>
</td>
<td class="nump">$ 21,328<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.90%<span></span>
</td>
<td class="nump">13.10%<span></span>
</td>
<td class="nump">14.40%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_AerospaceDefenseMember', window );">Aerospace &amp; Defense [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,778<span></span>
</td>
<td class="nump">$ 13,130<span></span>
</td>
<td class="nump">$ 11,521<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6.90%<span></span>
</td>
<td class="nump">6.90%<span></span>
</td>
<td class="nump">7.80%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_IndustrialMember', window );">Industrial [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,607<span></span>
</td>
<td class="nump">$ 10,579<span></span>
</td>
<td class="nump">$ 9,826<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.80%<span></span>
</td>
<td class="nump">5.60%<span></span>
</td>
<td class="nump">6.60%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_MajorCustomersAxis=ufpt_ElectronicsMember', window );">Electronics [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,408<span></span>
</td>
<td class="nump">$ 11,453<span></span>
</td>
<td class="nump">$ 11,959<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage', window );">Percentage of concentration risk</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4.20%<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">8.10%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The percentage of revenue, including tax collected from customer, from satisfaction of performance obligation by transferring promised good or service to customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130543-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_MedicalMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_MedicalMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_AutomotiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_AutomotiveMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_ConsumerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_ConsumerMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_AerospaceDefenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_AerospaceDefenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_IndustrialMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_IndustrialMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ufpt_ElectronicsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ufpt_ElectronicsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R80.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6799143056">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 13 - Leases - Aggregate Future Lease Payments (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2020</a></td>
<td class="nump">$ 1,173<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2021</a></td>
<td class="nump">1,118<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2022</a></td>
<td class="nump">957<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2023</a></td>
<td class="nump">36<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2024</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments</a></td>
<td class="nump">3,284<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Less: Interest</a></td>
<td class="num">(194)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Present value of lease liabilities</a></td>
<td class="nump">$ 3,090<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due after fifth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in next fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fifth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in fourth fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in third fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments for operating lease, due in second fiscal year following latest fiscal year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918701-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796664896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Income Tax - Unrecognized Tax Benefits (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Gross UTB balance at beginning of fiscal year</a></td>
<td class="nump">$ 150<span></span>
</td>
<td class="nump">$ 150<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Reductions for tax positions of prior years</a></td>
<td class="num">(150)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Gross UTB balance at end of fiscal year</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 150<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 10B<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=SL37586934-109318<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786706832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Inventories<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventory Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Inventories</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Inventories consist of the following (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Raw materials</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,540</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,727</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Work in process</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,279</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,521</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Finished goods</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,457</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,328</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total Inventory</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">18,276</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,576</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -URI http://asc.fasb.org/topic&amp;trid=2126998<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778751024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Accrued Expenses<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Accrued Expenses</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Accrued expenses consist of the following (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Compensation</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,961</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,542</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Benefits / self-insurance reserve</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,033</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,153</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Paid time off</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,315</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,131</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt">Other</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,174</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,632</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,483</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,458</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a),20,24)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786786240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Lessee, Operating Leases [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Leases</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company adopted ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div> - Leases (&#x201c;ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842&#x201d;</div>) as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019, </div>using the transition method wherein entities could initially apply the new leases standard at adoption date and recognize a cumulative-effect adjustment to the opening balance of retained earnings in the period of adoption. Accordingly, all periods prior to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019 </div>were presented in accordance with the previous ASC Topic <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">840,</div> Leases, and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div> retrospective adjustments were made to the comparative periods presented. The adoption of ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div> resulted in an increase to total assets due to the recording of operating lease right-of-use ("ROU") assets and operating lease liabilities of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$4.0</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$4.1</div> million, respectively, as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019. </div>The Company did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> have any finance leases at the adoption date. The adoption did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> materially impact the Company&#x2019;s condensed consolidated statements of income or cash flows.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company has operating leases for offices, manufacturing plants, vehicles and certain office and manufacturing equipment. Leases with an initial term of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12</div> months or less are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> recorded on the balance sheet. The Company has elected the practical expedient to account for each separate lease component of a contract and its associated non-lease components as a single lease component, thus causing all fixed payments to be capitalized. The Company also elected the package of practical expedients permitted within the new standard, which among other things, allows the Company to carry forward historical lease classification. Variable lease payment amounts that cannot be determined at the commencement of the lease such as increases in lease payments based on changes in index rates or usage, are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> included in the ROU assets or operating lease liabilities. These are expensed as incurred and recorded as variable lease expense. The Company determines if an arrangement is a lease at the inception of a contract. Operating lease ROU assets and operating lease liabilities are stated separately in the condensed consolidated balance sheet.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 55; Value: 1 -->  <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">ROU assets represent the Company's right to use an underlying asset during the lease term and operating lease liabilities represent the Company's obligation to make lease payments arising from the lease. ROU assets and operating lease liabilities are recognized at commencement date based on the net present value of fixed lease payments over the lease term. The Company's lease term includes options to extend or terminate the lease when it is reasonably certain that we will exercise that option. ROU assets will also be adjusted for any deferred or accrued rent. As the Company's operating leases do <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> typically provide an implicit rate, the Company uses its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments. The Company&#x2019;s incremental borrowing rate is based on its borrowing rate under the Amended and Restated Credit Agreement, adjusted to reflect an estimated fixed rate for the term of the underlying lease. Operating fixed lease expense is recognized on a straight-line basis over the lease term.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin-left: 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">Year Ended</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">December 31, 2019</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">($ in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Lease cost:</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: right">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 85%; font-size: 10pt">Operating</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,222</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Variable</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">219</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Short-term</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total lease cost</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,468</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for amounts included in measurement of lease liabilities:</td> <td>&nbsp;</td> <td style="text-align: left">&nbsp;</td> <td style="text-align: right">&nbsp;</td> <td style="text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,208</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average remaining lease term (years):</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.69</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Weighted-average discount rate:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">Operating</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.45</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The aggregate future lease payments for operating leases as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>were as follows (in thousands):</div> <div style=" margin: 0">&nbsp;</div> <div> <table style="border-collapse: collapse; margin-left: 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; font-size: 10pt; text-align: left">2020</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,173</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,118</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">957</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2023</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">36</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2024</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Thereafter</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total lease payments</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,284</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Less: Interest</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(194</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Present value of lease liabilities</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,090</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt"></div> <!-- Field: Page; Sequence: 56; Value: 1 -->  <div style=" margin: 0pt 0; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt; color: Red"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The aggregate future lease payments for operating leases as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>were as follows (in thousands):</div> <div style=" margin: 0">&nbsp;</div> <div> <table style="border-collapse: collapse; margin-left: 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; font-size: 10pt; text-align: left">2019</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,051</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2020</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,070</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,063</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">975</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">2023</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">36</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,195</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt; color: Red"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Rent expense amounted to approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.2</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.2</div> million, and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.9</div> million, in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=77888251<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786770624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Accrued Expenses (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Liabilities [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Compensation</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,961</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,542</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Benefits / self-insurance reserve</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,033</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,153</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Paid time off</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,315</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,131</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 1pt">Other</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,174</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,632</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,483</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,458</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>77
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786772224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Schedule of Inventory, Current [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Raw materials</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,540</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,727</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Work in process</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,279</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,521</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Finished goods</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,457</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,328</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total Inventory</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">18,276</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">19,576</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6779211392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Segment Data<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment Reporting Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Segment Data</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company consists of a single operating and reportable segment.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Revenues from customers outside of the United States are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> material. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No</div> customer comprised more than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10%</div> of the Company&#x2019;s consolidated revenues for the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019. </div>A vast majority of the Company&#x2019;s assets are located in the United States.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 58; Value: 1 -->  <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company&#x2019;s custom products are primarily sold to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Sales by market for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div> are as follows (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2018</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2017</div></td> </tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: left"><div style="display: inline; font-size: 10pt">Market</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 28%; font-size: 10pt"><div style="display: inline; font-size: 10pt">Medical</div></td> <td style="width: 3%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">128,915</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65.0</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="width: 3%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">110,282</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">57.9</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="width: 3%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">70,090</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47.4</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Automotive</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,004</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.1</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,022</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.5</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,119</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15.6</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Consumer</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,669</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8.9</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24,989</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13.1</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,328</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14.4</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Aerospace &amp; Defense</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,778</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.9</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,130</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.9</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,521</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7.8</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Industrial</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9,607</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.8</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,579</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.6</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9,826</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.6</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Electronics</div></td> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,408</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.2</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,453</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,959</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8.1</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left; text-indent: 10pt"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">198,381</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">190,455</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">147,843</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Certain amounts for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div> were reclassified between markets to conform to the current year presentation.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -URI http://asc.fasb.org/topic&amp;trid=2134510<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6788530752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Consolidation, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(a)</div></td> <td><div style="display: inline; font-style: italic;">Principles of Consolidation</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The consolidated financial statements include the accounts and results of operations of UFP Technologies, Inc., its wholly-owned subsidiaries, Moulded Fibre Technology, Inc., Simco Industries, Inc. Dielectrics, Inc. and UFP Realty LLC, and its wholly-owned subsidiaries, UFP MA LLC, UFP CO LLC, UFP FL LLC, UFP TX LLC, UFP MI LLC, and UFP IA LLC. All significant intercompany balances and transactions have been eliminated in consolidation. The Company has evaluated all subsequent events through the date of this filing.</div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(b)</div></td> <td><div style="display: inline; font-style: italic;">Use of Estimates</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The preparation of consolidated financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, including allowance for doubtful accounts and the net realizable value of inventory, and the fair value of goodwill, and disclosure of contingent assets and liabilities at the date of the consolidated financial statements, and the reported amounts of revenues and expenses during the reporting period. Actual results could differ from those estimates.</div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueMeasurementPolicyPolicyTextBlock', window );">Fair Value Measurement, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(c)</div></td> <td><div style="display: inline; font-style: italic;">Fair Value Measurement</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company defines fair value as the price that would be received from selling an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. When determining the fair value for assets and liabilities, which are required to be recorded at fair value, the Company considers the principal or most advantageous market in which the Company would transact and the market-based risk measurement or assumptions that market participants would use in pricing the asset or liability, such as inherent risk, transfer restrictions, and credit risk.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company has <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> elected fair value accounting for any financial instruments for which fair value accounting is optional.</div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value of Financial Instruments, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(d)</div></td> <td><div style="display: inline; font-style: italic;">Fair Value of Financial Instruments</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Cash and cash equivalents, accounts receivable, accounts payable, accrued expenses and other liabilities are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the Company&#x2019;s current incremental borrowing rate.</div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(e)</div></td> <td><div style="display: inline; font-style: italic;">Cash and Cash Equivalents</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company considers all highly liquid investments with original maturities of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div> months or less to be cash equivalents. At <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> the Company did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div></div> have any cash equivalents.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company maintains its cash in bank deposit accounts, money market funds, and certificates of deposit that at times exceed federally insured limits. The Company periodically reviews the financial stability of institutions holding its accounts and does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> believe it is exposed to any significant custodial credit risk on cash. The amounts contained within the Company&#x2019;s main operating accounts at Bank of America and TD Bank at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div>exceed the federal depository insurance limit by approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$4.7</div> million.</div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryCashFlowPolicy', window );">Inventory, Cash Flow Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: top"> <td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(f)</div></td> <td><div style="display: inline; font-style: italic;">Accounts Receivable</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company periodically reviews the collectability of its accounts receivable. Provisions are recorded for accounts that are potentially uncollectable. Determining adequate reserves for accounts receivable requires management&#x2019;s judgment. Conditions impacting the realizability of the Company&#x2019;s receivables could cause actual asset write-offs to be materially different than the reserved balances as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019.</div></div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventory, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(g)</div></td> <td><div style="display: inline; font-style: italic;">Inventories</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Inventories include material, labor, and manufacturing overhead and are valued at the lower of cost or net realizable value. Cost is determined using the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-in, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-out (&#x201c;FIFO&#x201d;) method.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company periodically reviews the realizability of its inventory for potential excess or obsolescence. Determining the net realizable value of inventory requires management&#x2019;s judgment. Conditions impacting the realizability of the Company&#x2019;s inventory could cause actual asset write-offs to be materially different than the Company&#x2019;s current estimates as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019.</div></div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property, Plant and Equipment, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(h)</div></td> <td><div style="display: inline; font-style: italic;">Property, Plant, and Equipment</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Property, plant, and equipment are stated at cost and are depreciated or amortized using the straight-line method over the estimated useful lives of the assets or the related lease term, if shorter.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Estimated useful lives of property, plant, and equipment are as follows:</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0 0pt 0.75in"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.65in; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Leasehold improvements</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center">Shorter of estimated useful life <br /> or remaining lease term</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; width: 63%">Buildings and improvements (in years)</td> <td style="font-size: 10pt; width: 1%">&nbsp;</td> <td style="text-align: right; font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20</div></td> <td style="text-align: center; font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">- </div></td> <td style="font-size: 10pt; width: 12%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">40</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Machinery &amp; equipment (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="text-align: right; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div></td> <td style="text-align: center; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Furniture, fixtures, computers &amp; software (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="text-align: right; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div></td> <td style="text-align: center; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7</div></td> </tr> </table> </div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Property, plant, and equipment amounts are reviewed for impairment whenever events or changes in circumstances indicate that the carrying amount of an asset <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be recoverable. An impairment loss would be recognized when the carrying amount of an asset exceeds the estimated undiscounted future cash flows expected to result from the use of the asset and its eventual disposition. The amount of the impairment loss to be recorded is calculated by the excess of the asset&#x2019;s carrying value over its fair value. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No</div> events or changes in circumstances arose during the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>that required management to perform an impairment analysis.</div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(i)</div></td> <td><div style="display: inline; font-style: italic;">Goodwill</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Goodwill is tested for impairment annually and will be tested for impairment between annual tests if an event occurs or circumstances change that would indicate that the carrying amount <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be impaired. Impairment testing for goodwill is done at a reporting unit level. Reporting units are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">one</div> level below the business segment level but can be combined when reporting units within the same segment have similar economic characteristics. An impairment loss generally would be recognized when the carrying amount of the reporting unit&#x2019;s net assets exceeds the estimated fair value of the reporting unit. The Company consists of a single reporting unit. The Company last performed &#x201c;step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1&#x201d;</div> of the goodwill impairment test as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018. </div>In testing goodwill for impairment at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018, </div>the Company primarily utilized the guideline public company (&#x201c;GPC&#x201d;) method under the market approach and the discounted cash flows method (&#x201c;DCF&#x201d;) under the income approach to determine the fair value of the reporting unit for purposes of testing the reporting unit&#x2019;s carrying value of goodwill for impairment. The GPC method derives a value by generating a multiple of EBITDA through the comparison of the Company to similar publicly traded companies. The DCF approach derives a value based on the present value of a series of estimated future cash flows at the valuation date by the application of a discount rate, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">one</div> that a prudent investor would require before making an investment in our equity securities. The key assumptions used in our approach included:</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 41; Value: 1 --> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"></div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: top"> <td style="width: 45.35pt"></td> <td style="width: 18pt">&#x2022;</td> <td>The reporting unit&#x2019;s estimated financials and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">five</div>-year projections of financial results, which were based on our strategic plans and long-range forecasts. Sales growth rates represent estimates based on current and forecasted sales mix and market conditions. The profit margins were projected based on historical margins, projected sales mix, current expense structure and anticipated expense modifications.</td> </tr> <tr style="vertical-align: top"> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </table> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: top"> <td style="width: 45.35pt"></td> <td style="width: 18pt">&#x2022;</td> <td>The projected terminal value which reflects the total present value of projected cash flows beyond the last period in the DCF. This value reflects a growth rate for the reporting unit, which is approximately the same growth rate of expected inflation into perpetuity.</td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: top"> <td style="width: 45.35pt"></td> <td style="width: 18pt">&#x2022;</td> <td>The discount rate determined using a Weighted Average Cost of Capital method (&#x201c;WACC&#x201d;), which considered market and industry data as well as Company-specific risk factors. Selection of guideline public companies which are similar in size and market capitalization to each other and to the Company.</td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">As of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018, </div>based on our calculations under the above noted approach, the fair value of the reporting unit significantly exceeded the carrying value of the reporting unit. In performing these calculations, management used its most reasonable estimates of the key assumptions discussed above. If the Company&#x2019;s actual operating results and/or the key assumptions utilized in management&#x2019;s calculations differ from our expectations, it is possible that a future impairment charge <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be necessary.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">The Company&#x2019;s annual impairment testing date is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31. </div>The Company performed a qualitative assessment (&#x201c;step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0&#x201d;</div>) as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and determined that it was more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> that the fair value of its reporting unit exceeded its carrying amount. As a result, the Company was <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> required to proceed to a &#x201c;step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1&#x201d;</div> impairment assessment. Factors considered included the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div> analysis and the calculated excess fair value over carrying amount, financial performance, forecasts and trends, market cap, regulatory and environmental issues, macro-economic conditions, industry and market considerations, raw material costs and management stability.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0; text-indent: 45pt">Approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$47.9</div> million of goodwill is deductible for tax purposes.<br /> </div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy', window );">Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(j)</div></td> <td><div style="display: inline; font-style: italic;">Intangible Assets</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Intangible assets with a definite life are amortized on a straight-line basis, with estimated useful lives ranging from <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div> to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20</div> years. Intangible assets with a definite life are tested for impairment whenever events or circumstances indicate that their carrying values <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be recoverable. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No</div> events or changes in circumstances arose during the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>that required management to perform an impairment analysis.</div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock', window );">Revenue from Contract with Customer [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(k)</div></td> <td><div style="display: inline; font-style: italic;">Revenue Recognition</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Beginning in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> the Company recognizes revenue when a customer obtains control of a promised good or service. The amount of revenue recognized reflects the consideration that the Company expects to be entitled to in exchange for promised goods or services. The Company recognizes revenue in accordance with the core principles of ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">606</div> which include (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div>) identifying the contract with a customer, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div>) identifying separate performance obligations within the contract, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div>) determining the transaction price, (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4</div>) allocating the transaction price to the performance obligations, and (<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div>) recognizing revenue. The Company recognizes all but an immaterial portion of its product sales upon shipment. The Company recognizes revenue from the sale of tooling and machinery primarily upon customer acceptance, with the exception of certain tooling where control does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> transfer to the customer, resulting in revenue being recognized over the estimated time for which parts are produced with the use of each respective tool. The Company recognizes revenue from engineering services as the services are performed. The Company recognizes revenue from bill and hold transactions at the time the specified goods are complete and available to the customer. In the ordinary course of business, the Company accepts sales returns from customers for defective goods, such amounts being immaterial. Although only applicable to an insignificant number of transactions, the Company has elected to exclude sales taxes from the transaction price. The Company has elected to account for shipping and handling activities for which the Company is responsible under the terms and conditions of the sale <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&#x2019;s promise to transfer the good and are expensed when revenue is recognized.</div> <div style=" font-size: 10pt; text-indent: -45pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">For the year <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> prior to ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">606,</div> the Company recognized revenue at the time of shipment when title and risk of loss have passed to the customer, persuasive evidence of an arrangement exists, performance of its obligation is complete, its price to the buyer is fixed or determinable, and the Company is reasonably assured of collection. Determination of these criteria, in some cases, requires management&#x2019;s judgment.</div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Share-based Payment Arrangement [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(l)</div></td> <td><div style="display: inline; font-style: italic;">Share-Based Compensation</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">When accounting for equity instruments exchanged for employee services, share-based compensation cost is measured at the grant date, based on the calculated fair value of the award, and is recognized as an expense over the employee&#x2019;s requisite service period (generally the vesting period of the equity grant). Forfeitures are expensed as they occur.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company issues share-based awards through several plans that are described in detail in Note&nbsp;<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12.</div> The compensation cost charged against income for those plans is included in selling, general &amp; administrative expenses as follows (in thousands):</div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="text-align: center; font-size: 10pt">&nbsp;</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> <td style="text-align: center; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Share-based compensation expense</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,591</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,212</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,068</div></td> <td style="width: 1%; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table> </div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The compensation expense for stock options granted during the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>-year period ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019,</div> was determined as the fair value of the options using the Black Scholes valuation model. The assumptions are noted as follows:</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt"></div> <div> <table style="border-collapse: collapse; margin-left: 0.63in; min-width: 700px;" cellspacing="0" cellpadding="0"> <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 54%; font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected volatility</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28.9</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.7</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 5%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">27.4%</div></td> <td style="width: 5%; font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="width: 5%; font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">29.1%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected dividends</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">None</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Risk-free interest rate</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.3</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7</div></td> <td style="font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.56%</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.84%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-indent: -6.85pt; padding-left: 6.85pt">Exercise price</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">38.61</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31.20</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$27.05</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> - </div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$28.70</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Expected term (in years)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7</div></td> <td style="font-size: 10pt; text-align: center"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> to </div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.8</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; text-indent: -6.85pt; padding-left: 6.85pt">Weighted-average grant date fair value</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12.70</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">$</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.15</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$5.59</div></td> <td style="font-size: 10pt; text-align: right"><div style=" font-size: 10pt; text-align: center; margin: 0pt 6.75pt 0pt 5.5pt"></div><div style=" font-size: 10pt; text-align: center; margin-top: 0pt; margin-bottom: 0pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> -</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$8.51</div></td> </tr> </table> </div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The stock volatility for each grant is determined based on a review of the experience of the weighted average of historical daily price changes of the Company&#x2019;s common stock over the expected option term, and the risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for periods corresponding with the expected term of the option. The expected term is estimated based on historical option exercise activity.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The total income tax benefit recognized in the consolidated statements of income for share-based compensation arrangements was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$653</div> thousand, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$544</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$525</div> thousand for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively.</div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ShippingAndHandlingCostsPolicyTextBlock', window );">Shipping and Handling Costs [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(m)</div></td> <td><div style="display: inline; font-style: italic;">Shipping and Handling Costs</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Costs incurred related to shipping and handling are included in cost of sales. Amounts charged to customers pertaining to these costs are included in net sales.</div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Tax, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(n)</div></td> <td><div style="display: inline; font-style: italic;">Income Taxes</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company&#x2019;s income taxes are accounted for under the asset and liability method. Under the asset and liability method, deferred tax assets and liabilities are recognized for the estimated future tax consequences attributable to differences between the financial statement carrying amounts of existing assets and liabilities and their respective tax basis and operating loss and tax credit carryforwards. Deferred tax expense or benefit results from the net change during the year in deferred tax assets and liabilities. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period that includes the enactment date.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 43; Value: 1 --> <div style=" margin: 0pt 0 0pt 45pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company evaluates the need for a valuation allowance to reduce its deferred tax assets to the amount that is more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> to be realized. The Company has considered future taxable income and ongoing prudent and feasible tax planning strategies in assessing the need for a valuation allowance. Should the Company determine that it would <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> be able to realize all or part of its deferred tax assets in the future, an adjustment to the deferred tax assets would be charged to income in the period such determination was made.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company recognizes the tax benefit from an uncertain tax position only if it is more likely than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> that the tax position will be sustained on examination by the taxing authorities, based on the technical merits of the position. The tax benefits recognized in the consolidated financial statements from such positions are then measured based on the largest benefit that has a greater than <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50%</div> likelihood of being realized upon settlement. The Company recognizes interest and penalties accrued related to unrecognized tax benefits in tax expense.</div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SegmentReportingPolicyPolicyTextBlock', window );">Segment Reporting, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(o)</div></td> <td><div style="display: inline; font-style: italic;">Segments and Related Information</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company follows the provisions of Accounting Standards Codification (ASC) <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">280,</div> <div style="display: inline; font-style: italic;">Segment Reporting</div>, which establish standards for the way public business enterprises report information and operating segments in annual financial statements (see Note <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17</div>).</div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_StockholdersEquityTreasuryStockPolicyTextBlock', window );">Stockholders Equity, Treasury Stock [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt"><div style="display: inline; font-style: italic;">(p)&nbsp;&nbsp; Treasury Stock</div></div> <div style=" font-size: 10pt; text-indent: 4.3pt; margin: 0pt 0 0pt 22.3pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">The Company accounts for treasury stock under the cost method, using the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div>-in, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">first</div> out flow assumption, and we include treasury stock as a component of stockholders&#x2019; equity. The Company did <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div></div></div> repurchase any shares of common stock during the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017.</div></div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpensePolicy', window );">Research and Development Expense, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0"><tr style="vertical-align: top"><td style="width: 27.35pt"></td> <td style="width: 18pt"><div style="display: inline; font-style: italic;">(q)</div></td> <td><div style="display: inline; font-style: italic;">Research and Development</div></td> </tr> </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">On a routine basis, the Company incurs costs related to research and development activity. These costs are expensed as incurred. Approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$9.5</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$10.5</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$5.0</div> million were expensed in the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively.</div></div></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">New Accounting Pronouncements, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">Recent Accounting Pronouncements</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 2016, </div>the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2016</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">02,</div> &#x201c;Leases (Accounting Standards Codification (ASC) <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div>),&#x201d; and issued subsequent amendments to the initial guidance in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2018 </div>within ASU <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">01</div> and in <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> July 2018 </div>within ASU Nos. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11.</div> The Company adopted ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">842</div> on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2019. </div>See Note <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13</div> for further details.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 2017, </div>the FASB issued ASU <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No.</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div>-<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">04,</div> Intangibles&#x2014;Goodwill and Other (ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">350</div>), Simplifying the Test for Goodwill Impairment. The guidance removes Step <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div> of the goodwill impairment test and eliminates the need to determine the fair value of individual assets and liabilities to measure goodwill impairment. A goodwill impairment will now be the amount by which a reporting unit&#x2019;s carrying value exceeds its fair value, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> to exceed the carrying amount of goodwill. Entities will continue to have the option to perform a qualitative assessment to determine if a quantitative impairment test is necessary. The guidance will be applied prospectively and is effective for annual and interim goodwill impairment tests in fiscal years beginning after <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 15, 2019. </div>Early adoption is permitted for any impairment tests performed on testing dates after <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2017. </div>The Company does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> believe adoption will have a material impact on its financial condition or results of operations.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 2016, </div>the FASB issued accounting standard that requires companies to utilize an impairment model (current expected credit loss, or CECL) for most financial assets measured at amortized cost and certain other financial instruments, which include, but are <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> limited to, trade and other receivables. This accounting standard will replace the incurred loss model under current GAAP with a model that reflects expected&nbsp;credit losses&nbsp;and requires consideration of a broader range of reasonable and supportable information to estimate those losses. Effective <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> January 1, 2020, </div>the Company adopted this standard. The adoption of this standard is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> expected to have a material impact on our Consolidated Financial Statements.</div></div></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription', window );">Reclassification, Policy [Policy Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt"><div style="display: inline; font-style: italic;">Revisions</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45pt">Certain revisions have been made to the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div> Consolidated Statements of Income to conform to the current year presentation relating to a reclassification of material overcharge settlement to selling, general and administrative expenses. The reclassification resulted in the removal of the material overcharge settlement line item and a decrease in selling, general and administrative expenses of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$104</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$121</div> thousand for the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> respectively. These revisions had <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div> impact on previously reported operating or net income and are deemed immaterial to the previously issued financial statements.</div></div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ShippingAndHandlingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ShippingAndHandlingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_StockholdersEquityTreasuryStockPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for its treasury stock transactions.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_StockholdersEquityTreasuryStockPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=98513485&amp;loc=d3e4273-108586<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.3A-02)<br> -URI http://asc.fasb.org/extlink&amp;oid=116822174&amp;loc=d3e355033-122828<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.3A-03)<br> -URI http://asc.fasb.org/extlink&amp;oid=116822174&amp;loc=d3e355100-122828<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 60<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=7493716&amp;loc=d3e21868-110260<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118260190&amp;loc=d3e13279-108611<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=108376223&amp;loc=d3e13816-109267<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for intangible assets. This accounting policy may address both intangible assets subject to amortization and those that are not. The following also may be disclosed: (1) a description of intangible assets (2) the estimated useful lives of those assets (3) the amortization method used (4) how the entity assesses and measures impairment of such assets (5) how future cash flows are estimated (6) how the fair values of such asset are determined.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32847-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 740<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6491622&amp;loc=d3e9504-115650<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32809-109319<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116657188&amp;loc=SL116659661-227067<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 19<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32840-109319<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=d3e32247-109318<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=d3e32280-109318<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 05<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=65884525&amp;loc=d3e40913-109327<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryCashFlowPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining where the cash flows related to the sale of inventory are classified in the statements of cash flows and explain the nature of the receivables, notes, and loans.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 55<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=98515684&amp;loc=d3e4458-108587<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 05<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6386310&amp;loc=d3e3258-108308<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryCashFlowPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116846552&amp;loc=d3e543-108305<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for reclassifications that affects the comparability of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6359566&amp;loc=d3e326-107755<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PriorPeriodReclassificationAdjustmentDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, basis of assets, depreciation and depletion methods used, including composite deprecation, estimated useful lives, capitalization policy, accounting treatment for costs incurred for repairs and maintenance, capitalized interest and the method it is calculated, disposals and impairments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpensePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpensePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue from contract with customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18823-107790<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -URI http://asc.fasb.org/topic&amp;trid=49130388<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for segment reporting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18780-107790<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b),(f)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5047-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6799120768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Summary of Significant Accounting Policies (Details Textual) - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashEquivalentsAtCarryingValue', window );">Cash Equivalents, at Carrying Value, Total</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashUninsuredAmount', window );">Cash, Uninsured Amount</a></td>
<td class="nump">4,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount', window );">Business Acquisition, Goodwill, Expected Tax Deductible Amount</a></td>
<td class="nump">$ 47,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockSharesAcquired', window );">Treasury Stock, Shares, Acquired</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and Development Expense, Total</a></td>
<td class="nump">$ 9,500<span></span>
</td>
<td class="nump">$ 10,500<span></span>
</td>
<td class="nump">$ 5,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, General and Administrative Expense, Total</a></td>
<td class="nump">29,251<span></span>
</td>
<td class="nump">27,654<span></span>
</td>
<td class="nump">23,724<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis=ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember', window );">Reclassification of Material Overcharge Settlement to Selling, General and Administrative Expenses [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, General and Administrative Expense, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(104)<span></span>
</td>
<td class="num">(121)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Share-based Payment Arrangement, Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Share-based Payment Arrangement, Expense, Tax Benefit</a></td>
<td class="nump">$ 653<span></span>
</td>
<td class="nump">$ 544<span></span>
</td>
<td class="nump">$ 525<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">20 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=35744584&amp;loc=d3e6927-128479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashUninsuredAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of cash as of the balance sheet date that is not insured by the Federal Deposit Insurance Corporation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashUninsuredAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 985<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6501960&amp;loc=d3e128462-111756<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 730<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6420194&amp;loc=d3e21568-108373<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=68048583&amp;loc=d3e3636-108311<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockSharesAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and are being held in treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockSharesAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis=ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis=ufpt_ReclassificationOfMaterialOverchargeSettlementToSellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6779078144">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Segment Data (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock', window );">Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2018</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">2017</div></td> </tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: left"><div style="display: inline; font-size: 10pt">Market</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 28%; font-size: 10pt"><div style="display: inline; font-size: 10pt">Medical</div></td> <td style="width: 3%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">128,915</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">65.0</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="width: 3%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">110,282</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">57.9</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="width: 3%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">70,090</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 8%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47.4</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Automotive</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,004</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.1</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,022</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10.5</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,119</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15.6</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Consumer</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,669</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8.9</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">24,989</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13.1</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,328</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14.4</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">Aerospace &amp; Defense</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,778</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.9</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,130</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.9</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,521</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">7.8</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Industrial</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9,607</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.8</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,579</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.6</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">9,826</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.6</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">Electronics</div></td> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,408</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4.2</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,453</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6.0</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 1pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11,959</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8.1</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left; text-indent: 10pt"><div style="display: inline; font-size: 10pt">Net Sales</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">198,381</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">190,455</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">147,843</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">100.0</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">%</div></td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6949596064">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Property, Plant and Equipment (Details Textual) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation, Depletion and Amortization, Nonproduction, Total</a></td>
<td class="nump">$ 6.9<span></span>
</td>
<td class="nump">$ 6.6<span></span>
</td>
<td class="nump">$ 5.3<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6673766704">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 9 - Accrued Expenses - Accrued Expenses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedSalariesCurrent', window );">Compensation</a></td>
<td class="nump">$ 3,961<span></span>
</td>
<td class="nump">$ 3,542<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SelfInsuranceReserveCurrent', window );">Benefits / self-insurance reserve</a></td>
<td class="nump">1,033<span></span>
</td>
<td class="nump">1,153<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedVacationCurrent', window );">Paid time off</a></td>
<td class="nump">1,315<span></span>
</td>
<td class="nump">1,131<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">2,174<span></span>
</td>
<td class="nump">2,632<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">$ 8,483<span></span>
</td>
<td class="nump">$ 8,458<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedSalariesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of the obligations incurred through that date and payable for employees' services provided. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6911-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6935-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedSalariesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedVacationCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 25<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=6409733&amp;loc=d3e19396-108361<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6911-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedVacationCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6911-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e7018-107765<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6935-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SelfInsuranceReserveCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount of accrued known and estimated losses incurred as of the balance sheet date for which no insurance coverage exists, and for which a claim has been made or is probable of being asserted, typically arising from workmen's compensation-type of incidents and personal injury to nonemployees from accidents on the entity's property that are expected to be paid within one year (or the normal operating cycle, if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SelfInsuranceReserveCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6779009616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Income Tax - Income Tax Rate Reconciliation (Details)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Computed &#8220;expected&#8221; tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">34.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes', window );">State taxes, net of federal tax benefit</a></td>
<td class="nump">1.80%<span></span>
</td>
<td class="nump">2.80%<span></span>
</td>
<td class="nump">3.50%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment', window );">Meals and entertainment</a></td>
<td class="nump">0.20%<span></span>
</td>
<td class="nump">0.20%<span></span>
</td>
<td class="nump">0.30%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits', window );">Tax credits</a></td>
<td class="num">(6.20%)<span></span>
</td>
<td class="num">(1.90%)<span></span>
</td>
<td class="num">(0.60%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities', window );">Domestic production deduction</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(2.60%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost', window );">Non-deductible ISO stock option expense</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">0.10%<span></span>
</td>
<td class="nump">0.10%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments', window );">Unrecognized tax benefits</a></td>
<td class="num">(0.70%)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent', window );">Excess tax benefits on equity awards</a></td>
<td class="num">(0.70%)<span></span>
</td>
<td class="num">(1.30%)<span></span>
</td>
<td class="num">(1.40%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Excess compensation</a></td>
<td class="nump">0.60%<span></span>
</td>
<td class="nump">0.80%<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate', window );">Impact on deferred taxes of new legislation</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(11.10%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="nump">0.40%<span></span>
</td>
<td class="nump">0.50%<span></span>
</td>
<td class="nump">0.10%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="nump">0.10%<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Effective tax rate</a></td>
<td class="nump">16.50%<span></span>
</td>
<td class="nump">22.20%<span></span>
</td>
<td class="nump">22.30%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to the tax benefit from equity-based compensation costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_EffectiveIncomeTaxRateReconciliationTaxBenefitsFromSharebasedCompensationCostPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of difference between the effective income tax rate and domestic federal statutory income tax rate attributable to the amount of unrecognized tax benefits under enacted tax laws.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_EffectiveIncomeTaxRateReconciliationUnrecognizedTaxBenefitsAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(h)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the income tax rates.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationChangeInEnactedTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to deduction for qualified production activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationDeductionsQualifiedProductionActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to meals and entertainment expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to nondeductible expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 740<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117330312&amp;loc=d3e23163-113944<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32698-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786825312">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Fair Value of Financial Instruments<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Disclosures [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Fair Value of Financial Instruments</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Financial instruments recorded at fair value in the consolidated balance sheets, or disclosed at fair value in the footnotes, are categorized based upon the level of judgment associated with the inputs used to measure their fair value. Hierarchical levels defined by ASC <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">820,</div> <div style="display: inline; font-style: italic;">Fair Value Measurements and Disclosures</div>, and directly related to the amount of subjectivity associated with inputs to fair valuation of these assets and liabilities, are as follows:</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1</div></div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Valued based on unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date. An active market for the asset or liability is a market in which transactions for the asset or liability occur with sufficient frequency and volume to provide pricing information on an ongoing basis.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div></div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Valued based on either directly or indirectly observable prices for the asset or liability through correlation with market data at the measurement date and for the duration of the instrument&#x2019;s anticipated life.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3</div></div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 45.35pt">Valued based on management&#x2019;s best estimate of what market participants would use in pricing the asset or liability at the measurement date. Consideration is given to the risk inherent in the valuation technique and the risk inherent in the inputs to the model.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The following table presents the fair value and hierarchy levels, for financial assets that are measured at fair value on a recurring basis (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0 0pt 0.5in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt"><div style="display: inline; text-decoration: underline;">Level 2</div></div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-size: 10pt">December 31,<br /> 2019</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">Assets:</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 35%; font-size: 10pt; text-align: left; text-indent: 10pt"><div style="display: inline; font-size: 10pt">Derivative financial instruments</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(325</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">)</div></td> <td style="background-color: White; width: 50%"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Derivative financial instruments consist of an interest rate swap for which fair value is determined through the use of a pricing model that utilizes verifiable inputs such as market interest rates that are observable at commonly quoted intervals for the full term of the swap agreement.</div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company has financial instruments, such as accounts receivable, accounts payable, and accrued expenses, that are stated at carrying amounts that approximate fair value because of the short maturity of those instruments. The carrying amount of the Company&#x2019;s long-term debt approximates fair value as the interest rate on the debt approximates the estimated borrowing rate currently available to the Company.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 820<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117815213&amp;loc=d3e19207-110258<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778904256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock', window );">SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" font-size: 10pt; text-align: right; margin: 0pt 0">Schedule II</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0"><div style="display: inline; font-weight: bold;">UFP TECHNOLOGIES, INC.</div></div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0"><div style="display: inline; font-weight: bold;">Consolidated Financial Statement Schedule</div></div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0"><div style="display: inline; font-weight: bold;">&nbsp;</div></div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">Valuation and Qualifying Accounts</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">Years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017</div></div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; text-align: center; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0">Accounts receivable, allowance for doubtful accounts:</div> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Balance at beginning of year</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">564</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">652</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">567</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Provision for bad debt</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(52</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(50</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Write-offs, net of recoveries</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(26</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(38</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(31</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Balance at end of year</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">486</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">564</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">652</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher SEC<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Section 12<br> -Subsection 09<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6781829952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Summary of Significant Accounting Policies - Estimated Useful Lives of Property, Plant, and Equipment (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember', window );">Building and Building Improvements [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant, and equipment, useful life (Year)</a></td>
<td class="text">20 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember', window );">Building and Building Improvements [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant, and equipment, useful life (Year)</a></td>
<td class="text">40 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant, and equipment, useful life (Year)</a></td>
<td class="text">7 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant, and equipment, useful life (Year)</a></td>
<td class="text">15 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=ufpt_FurnitureFixturesAndComputersMember', window );">Furniture, Fixtures, and Computers [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant, and equipment, useful life (Year)</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=ufpt_FurnitureFixturesAndComputersMember', window );">Furniture, Fixtures, and Computers [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, plant, and equipment, useful life (Year)</a></td>
<td class="text">7 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingAndBuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=ufpt_FurnitureFixturesAndComputersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=ufpt_FurnitureFixturesAndComputersMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6612992720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Quarterly Financial Information (Unaudited) (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock', window );">Quarterly Financial Information [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q1</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q2</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q3</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q4</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Net sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47,328</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">51,399</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,394</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50,260</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Gross profit</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,497</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,371</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,321</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">13,770</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,734</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,598</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,641</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,777</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Basic net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.50</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.62</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.76</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.78</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Diluted net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.50</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.62</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.75</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.76</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q1</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q2</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q3</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">Q4</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Net sales</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">42,931</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">49,019</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">47,808</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">50,697</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Gross profit</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,185</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,986</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,431</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12,706</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Net income</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,777</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,990</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,134</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,410</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Basic net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.24</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.56</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.60</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Diluted net income per share</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.24</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.54</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.56</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.59</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of quarterly financial data. Includes, but is not limited to, financial information for fiscal quarters, cumulative effect of a change in accounting principle and earnings per share data.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118952077&amp;loc=d3e1280-108306<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfQuarterlyFinancialInformationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6788622240">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 10 - Income Tax - Deferred Tax Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals', window );">Reserves</a></td>
<td class="nump">$ 362<span></span>
</td>
<td class="nump">$ 367<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInventory', window );">Inventory capitalization</a></td>
<td class="nump">396<span></span>
</td>
<td class="nump">421<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent', window );">Compensation programs</a></td>
<td class="nump">578<span></span>
</td>
<td class="nump">447<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits', window );">Retirement liability</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Equity-based compensation</a></td>
<td class="nump">403<span></span>
</td>
<td class="nump">290<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_DeferredTaxAssetsLeaseLiability', window );">Lease liability</a></td>
<td class="nump">795<span></span>
</td>
<td class="nump">11<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets', window );">Intangible assets</a></td>
<td class="nump">73<span></span>
</td>
<td class="nump">141<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards', window );">State tax credits, net of federal impact</a></td>
<td class="nump">274<span></span>
</td>
<td class="nump">257<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGross', window );">Gross deferred tax assets</a></td>
<td class="nump">2,881<span></span>
</td>
<td class="nump">1,936<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(136)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsNet', window );">Net deferred tax assets</a></td>
<td class="nump">2,745<span></span>
</td>
<td class="nump">1,936<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Excess of book over tax basis of fixed assets</a></td>
<td class="num">(4,877)<span></span>
</td>
<td class="num">(4,668)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill', window );">Goodwill</a></td>
<td class="num">(2,008)<span></span>
</td>
<td class="num">(1,397)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_DeferredTaxLiabilitiesRightOfUseAsset', window );">Right of use asset</a></td>
<td class="num">(781)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilities', window );">Total deferred tax liabilities</a></td>
<td class="num">(7,666)<span></span>
</td>
<td class="num">(6,065)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_AggregateDeferredTaxLiabilitiesNoncurrent', window );">Net long-term deferred tax liabilities</a></td>
<td class="num">$ (4,921)<span></span>
</td>
<td class="num">$ (4,129)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_AggregateDeferredTaxLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount, in aggregate, of the deferred tax liability attributable to taxable temporary differences, net of deferred tax asset attributable to deductible temporary differences and carryforwards net of valuation allowances</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_AggregateDeferredTaxLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_DeferredTaxAssetsLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_DeferredTaxAssetsLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from compensation and benefits costs.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_DeferredTaxLiabilitiesRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax consequences attributable to taxable temporary differences derived from right of use asset.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_DeferredTaxLiabilitiesRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(15)(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26)(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from intangible assets including goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGoodwillAndIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=117330534&amp;loc=d3e28680-109314<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b),(c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32559-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from postretirement benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=117330534&amp;loc=d3e28680-109314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=117330534&amp;loc=d3e28680-109314<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from goodwill.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 740<br> -Section 25<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=117412053&amp;loc=d3e9972-128506<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=117330534&amp;loc=d3e28680-109314<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 740<br> -Section 25<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=117412053&amp;loc=d3e9979-128506<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 25<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=117330534&amp;loc=d3e28680-109314<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>91
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6949594976">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 6 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2020</a></td>
<td class="nump">$ 1,257<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2021</a></td>
<td class="nump">1,257<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2022</a></td>
<td class="nump">1,257<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2023</a></td>
<td class="nump">1,172<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2024</a></td>
<td class="nump">1,164<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">14,868<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 20,975<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796964624">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 8 - Indebtedness - Long-term Debt (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Long-term debt</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 25,143<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current portion</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(2,857)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt, excluding current portion</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">22,286<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentAxis=ufpt_TermLoanMember', window );">Term Loan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Long-term debt</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">17,143<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember', window );">Revolving Credit Facility [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Long-term debt</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 8,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=109500613&amp;loc=SL6031897-161870<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=ufpt_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentAxis=ufpt_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6798136624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">$ 2,507<span></span>
</td>
<td class="nump">$ 871<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Acquired in Dielectrics business combination</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">2,175<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers', window );">Increases due to consideration received from customers</a></td>
<td class="nump">3,216<span></span>
</td>
<td class="nump">4,188<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue recognized</a></td>
<td class="num">(3,149)<span></span>
</td>
<td class="num">(4,727)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">2,574<span></span>
</td>
<td class="nump">2,507<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Unbilled Receivables - beginning of period</a></td>
<td class="nump">65<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized', window );">Increases due to revenue recognized - not invoiced to customers</a></td>
<td class="nump">831<span></span>
</td>
<td class="nump">301<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetReclassifiedToReceivable', window );">Decreases due to customer invoicing</a></td>
<td class="num">(824)<span></span>
</td>
<td class="num">(236)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNet', window );">Unbilled Receivables - end of period</a></td>
<td class="nump">$ 72<span></span>
</td>
<td class="nump">$ 65<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from unbilled revenue recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in obligation to transfer good or service to customer for which consideration from customer has been received.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130531-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130533-203044<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetReclassifiedToReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time from transfer to receivable due to right to consideration becoming unconditional.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetReclassifiedToReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130532-203044<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130551-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6786701168">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 4 - Receivables - Receivables (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableGrossCurrent', window );">Accounts receivable&#8211;trade</a></td>
<td class="nump">$ 29,134<span></span>
</td>
<td class="nump">$ 28,885<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Less allowance for doubtful receivables</a></td>
<td class="num">(486)<span></span>
</td>
<td class="num">(564)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReceivablesNetCurrent', window );">Receivables, net</a></td>
<td class="nump">$ 28,648<span></span>
</td>
<td class="nump">$ 28,321<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableGrossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118952595&amp;loc=d3e4428-111522<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=118952595&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableGrossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=118936363&amp;loc=d3e5074-111524<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118955202&amp;loc=SL82895884-210446<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(5))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 210<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-06(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6488278&amp;loc=d3e604059-122996<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6788394112">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Stock Option and Equity Incentive Plans - Summary of Stock Option Activity (Details) - Employee and Nonemployee Stock Option [Member]<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, shares under options (in shares) | shares</a></td>
<td class="nump">134,043<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, weighted average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 20.46<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross | shares</a></td>
<td class="nump">16,536<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 38.61<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares under options (in shares) | shares</a></td>
<td class="num">(44,965)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 15.68<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, shares under options (in shares) | shares</a></td>
<td class="nump">105,614<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Outstanding, weighted average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 25.34<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, weighted average remaining contractual life (Year)</a></td>
<td class="text">5 years 255 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, aggregate intrinsic value | $</a></td>
<td class="nump">$ 2,563<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, shares under options (in shares) | shares</a></td>
<td class="nump">85,328<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 22.62<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted average remaining contractual life (Year)</a></td>
<td class="text">5 years 36 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1', window );">Exercisable, aggregate intrinsic value | $</a></td>
<td class="nump">$ 2,303<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Vested and expected to vest, shares under options (in shares) | shares</a></td>
<td class="nump">105,614<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice', window );">Vested and expected to vest, weighted average exercise price (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 25.34<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Vested and expected to vest, weighted average remaining contractual life (Year)</a></td>
<td class="text">5 years 255 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Vested and expected to vest, aggregate intrinsic value | $</a></td>
<td class="nump">$ 2,563<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)-(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest exercisable or convertible options. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116856206&amp;loc=d3e5070-113901<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=109259400&amp;loc=d3e21463-112644<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ufpt_EmployeeAndNonemployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>96
<FILENAME>R85.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796735104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Quarterly Financial Information (Unaudited) - Summarized Quarterly Financial Data (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="8">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Sep. 30, 2019</div></th>
<th class="th"><div>Jun. 30, 2019</div></th>
<th class="th"><div>Mar. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Sep. 30, 2018</div></th>
<th class="th"><div>Jun. 30, 2018</div></th>
<th class="th"><div>Mar. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 50,260<span></span>
</td>
<td class="nump">$ 49,394<span></span>
</td>
<td class="nump">$ 51,399<span></span>
</td>
<td class="nump">$ 47,328<span></span>
</td>
<td class="nump">$ 50,697<span></span>
</td>
<td class="nump">$ 47,808<span></span>
</td>
<td class="nump">$ 49,019<span></span>
</td>
<td class="nump">$ 42,931<span></span>
</td>
<td class="nump">$ 198,381<span></span>
</td>
<td class="nump">$ 190,455<span></span>
</td>
<td class="nump">$ 147,843<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">13,770<span></span>
</td>
<td class="nump">13,321<span></span>
</td>
<td class="nump">14,371<span></span>
</td>
<td class="nump">12,497<span></span>
</td>
<td class="nump">12,706<span></span>
</td>
<td class="nump">12,431<span></span>
</td>
<td class="nump">12,986<span></span>
</td>
<td class="nump">10,185<span></span>
</td>
<td class="nump">$ 53,959<span></span>
</td>
<td class="nump">$ 48,308<span></span>
</td>
<td class="nump">$ 35,487<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic', window );">Net income</a></td>
<td class="nump">$ 5,777<span></span>
</td>
<td class="nump">$ 5,641<span></span>
</td>
<td class="nump">$ 4,598<span></span>
</td>
<td class="nump">$ 3,734<span></span>
</td>
<td class="nump">$ 4,410<span></span>
</td>
<td class="nump">$ 4,134<span></span>
</td>
<td class="nump">$ 3,990<span></span>
</td>
<td class="nump">$ 1,777<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic net income per share (in dollars per share)</a></td>
<td class="nump">$ 0.78<span></span>
</td>
<td class="nump">$ 0.76<span></span>
</td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.50<span></span>
</td>
<td class="nump">$ 0.60<span></span>
</td>
<td class="nump">$ 0.56<span></span>
</td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 2.66<span></span>
</td>
<td class="nump">$ 1.95<span></span>
</td>
<td class="nump">$ 1.27<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Diluted net income per share (in dollars per share)</a></td>
<td class="nump">$ 0.76<span></span>
</td>
<td class="nump">$ 0.75<span></span>
</td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.50<span></span>
</td>
<td class="nump">$ 0.59<span></span>
</td>
<td class="nump">$ 0.56<span></span>
</td>
<td class="nump">$ 0.54<span></span>
</td>
<td class="nump">$ 0.24<span></span>
</td>
<td class="nump">$ 2.63<span></span>
</td>
<td class="nump">$ 1.93<span></span>
</td>
<td class="nump">$ 1.26<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1337-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=117327953&amp;loc=d3e4984-109258<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1252-109256<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=SL5780133-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 55<br> -Paragraph 52<br> -URI http://asc.fasb.org/extlink&amp;oid=117327953&amp;loc=d3e4984-109258<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1252-109256<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1337-109256<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=SL5780133-109256<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.1,2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=117326831&amp;loc=d3e1377-109256<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130545-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130543-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>97
<FILENAME>R81.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778842480">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 13 - Leases - Future Minimum Lease Payments For Operating Leases (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent', window );">2019</a></td>
<td class="nump">$ 1,051<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears', window );">2020</a></td>
<td class="nump">1,070<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears', window );">2021</a></td>
<td class="nump">1,063<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears', window );">2022</a></td>
<td class="nump">975<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears', window );">2023</a></td>
<td class="nump">36<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDue', window );">Total</a></td>
<td class="nump">$ 4,195<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77902758&amp;loc=d3e41502-112717<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 840<br> -SubTopic 10<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -URI http://asc.fasb.org/extlink&amp;oid=82846649&amp;loc=d3e38371-112697<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>98
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778834032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Net Income Per Share (Details Textual) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</a></td>
<td class="nump">16,536<span></span>
</td>
<td class="nump">10,344<span></span>
</td>
<td class="nump">27,336<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<FILENAME>R89.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778791872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at beginning of year</a></td>
<td class="nump">$ 564<span></span>
</td>
<td class="nump">$ 652<span></span>
</td>
<td class="nump">$ 567<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Provision for bad debt</a></td>
<td class="num">(52)<span></span>
</td>
<td class="num">(50)<span></span>
</td>
<td class="nump">116<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Write-offs, net of recoveries</a></td>
<td class="num">(26)<span></span>
</td>
<td class="num">(38)<span></span>
</td>
<td class="num">(31)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at end of year</a></td>
<td class="nump">$ 486<span></span>
</td>
<td class="nump">$ 564<span></span>
</td>
<td class="nump">$ 652<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesDeductions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e24092-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesDeductions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>100
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6781757536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income from consolidated operations</a></td>
<td class="nump">$ 19,750<span></span>
</td>
<td class="nump">$ 14,311<span></span>
</td>
<td class="nump">$ 9,210<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to net cash provided by operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation and amortization</a></td>
<td class="nump">8,172<span></span>
</td>
<td class="nump">7,831<span></span>
</td>
<td class="nump">5,635<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets', window );">(Gain) loss on sales of property, plant and equipment</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(47)<span></span>
</td>
<td class="nump">7<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="nump">1,591<span></span>
</td>
<td class="nump">1,212<span></span>
</td>
<td class="nump">1,068<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income taxes</a></td>
<td class="nump">792<span></span>
</td>
<td class="nump">1,881<span></span>
</td>
<td class="num">(1,019)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Receivables, net</a></td>
<td class="num">(327)<span></span>
</td>
<td class="num">(2,556)<span></span>
</td>
<td class="num">(132)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="nump">1,300<span></span>
</td>
<td class="num">(2,295)<span></span>
</td>
<td class="nump">1,288<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidExpense', window );">Prepaid expenses</a></td>
<td class="num">(98)<span></span>
</td>
<td class="num">(249)<span></span>
</td>
<td class="nump">446<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInIncomeTaxesReceivable', window );">Refundable income taxes</a></td>
<td class="nump">2,006<span></span>
</td>
<td class="num">(1,268)<span></span>
</td>
<td class="num">(210)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets', window );">Other assets</a></td>
<td class="nump">110<span></span>
</td>
<td class="num">(76)<span></span>
</td>
<td class="num">(228)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(2,472)<span></span>
</td>
<td class="nump">1,113<span></span>
</td>
<td class="nump">93<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="nump">25<span></span>
</td>
<td class="nump">1,472<span></span>
</td>
<td class="nump">974<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">67<span></span>
</td>
<td class="nump">35<span></span>
</td>
<td class="nump">91<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities', window );">Non-qualified deferred compensation plan and other liabilities</a></td>
<td class="nump">313<span></span>
</td>
<td class="num">(44)<span></span>
</td>
<td class="nump">246<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">31,229<span></span>
</td>
<td class="nump">21,320<span></span>
</td>
<td class="nump">17,469<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Additions to property, plant and equipment</a></td>
<td class="num">(5,778)<span></span>
</td>
<td class="num">(5,428)<span></span>
</td>
<td class="num">(10,382)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition of Dieletrics, net of cash acquired</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(76,978)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sale of property, plant and equipment</a></td>
<td class="nump">4<span></span>
</td>
<td class="nump">77<span></span>
</td>
<td class="nump">7<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(5,774)<span></span>
</td>
<td class="num">(82,329)<span></span>
</td>
<td class="num">(10,375)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromLinesOfCredit', window );">Proceeds from advances on revolving line of credit</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">36,000<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfLinesOfCredit', window );">Payments on revolving line of credit</a></td>
<td class="num">(8,000)<span></span>
</td>
<td class="num">(28,000)<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt', window );">Proceeds from the issuance of long-term debt</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">20,000<span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfLongTermDebt', window );">Principal repayment of long-term debt</a></td>
<td class="num">(17,143)<span></span>
</td>
<td class="num">(2,857)<span></span>
</td>
<td class="num">(856)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ProceedsFromStockOptionsExercisedNet', window );">Proceeds from the exercise of stock options, net of shares presented for exercise</a></td>
<td class="nump">705<span></span>
</td>
<td class="nump">1,270<span></span>
</td>
<td class="nump">677<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Payment of statutory withholding for stock options exercised and restricted stock units vested</a></td>
<td class="num">(512)<span></span>
</td>
<td class="num">(144)<span></span>
</td>
<td class="num">(296)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash (used in) provided by financing activities</a></td>
<td class="num">(24,950)<span></span>
</td>
<td class="nump">26,269<span></span>
</td>
<td class="num">(475)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease', window );">Net change in cash and cash equivalents</a></td>
<td class="nump">505<span></span>
</td>
<td class="num">(34,740)<span></span>
</td>
<td class="nump">6,619<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents at beginning of year</a></td>
<td class="nump">3,238<span></span>
</td>
<td class="nump">37,978<span></span>
</td>
<td class="nump">31,359<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents at end of year</a></td>
<td class="nump">$ 3,743<span></span>
</td>
<td class="nump">$ 3,238<span></span>
</td>
<td class="nump">$ 37,978<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_ProceedsFromStockOptionsExercisedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the amount received from holders exercising their stock options, net of attestation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ufpt_ProceedsFromStockOptionsExercisedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ufpt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash and cash equivalents. Cash and cash equivalents are the amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Includes effect from exchange rate changes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of property, plant and equipment assets, excluding oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=109226348&amp;loc=d3e2443-110228<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=109226691&amp;loc=d3e2941-110230<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInIncomeTaxesReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in income taxes receivable, which represents the amount due from tax authorities for refunds of overpayments or recoveries of income taxes paid.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInIncomeTaxesReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3521-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3536-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 24<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3521-108585<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669619-108580<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637391&amp;loc=SL114874048-224260<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118930883&amp;loc=SL7669625-108580<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -URI http://asc.fasb.org/extlink&amp;oid=116637232&amp;loc=SL114874131-224263<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=116634182&amp;loc=SL114868664-224227<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3213-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3255-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3255-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(f))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3179-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3291-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08.(f))<br> -URI http://asc.fasb.org/extlink&amp;oid=26873400&amp;loc=d3e23780-122690<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3291-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RepaymentsOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3602-108585<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6781814496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Leases - Lease Cost (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCostAbstract', window );"><strong>Lease cost:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseCost', window );">Operating</a></td>
<td class="nump">$ 1,222<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_VariableLeaseCost', window );">Variable</a></td>
<td class="nump">219<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term</a></td>
<td class="nump">27<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCost', window );">Total lease cost</a></td>
<td class="nump">1,468<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating, cash paid for amounts included in measurement of lease liabilities</a></td>
<td class="nump">$ 1,208<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Operating, weighted average remaining lease term (Year)</a></td>
<td class="text">2 years 251 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Operating, weighted-average discount rate</a></td>
<td class="nump">4.45%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lease cost recognized by lessee for lease contract.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeaseCostAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918643-209977<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of short-term lease cost, excluding expense for lease with term of one month or less.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShortTermLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888426&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 55<br> -Paragraph 53<br> -URI http://asc.fasb.org/extlink&amp;oid=77888399&amp;loc=SL77918982-209971<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_VariableLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>102
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6796821088">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 3,743<span></span>
</td>
<td class="nump">$ 3,238<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Receivables, net</a></td>
<td class="nump">28,648<span></span>
</td>
<td class="nump">28,321<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">18,276<span></span>
</td>
<td class="nump">19,576<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid expenses</a></td>
<td class="nump">2,304<span></span>
</td>
<td class="nump">2,206<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxesReceivable', window );">Refundable income taxes</a></td>
<td class="nump">279<span></span>
</td>
<td class="nump">2,285<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">53,250<span></span>
</td>
<td class="nump">55,626<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant, and equipment</a></td>
<td class="nump">116,089<span></span>
</td>
<td class="nump">111,779<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less accumulated depreciation and amortization</a></td>
<td class="num">(59,350)<span></span>
</td>
<td class="num">(54,112)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Net property, plant and equipment</a></td>
<td class="nump">56,739<span></span>
</td>
<td class="nump">57,667<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">51,838<span></span>
</td>
<td class="nump">51,838<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">20,975<span></span>
</td>
<td class="nump">22,232<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationPlanAssets', window );">Non-qualified deferred compensation plan</a></td>
<td class="nump">2,775<span></span>
</td>
<td class="nump">2,034<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right of use assets</a></td>
<td class="nump">3,034<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">147<span></span>
</td>
<td class="nump">201<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">188,758<span></span>
</td>
<td class="nump">189,598<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">4,577<span></span>
</td>
<td class="nump">6,836<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">8,483<span></span>
</td>
<td class="nump">8,458<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue</a></td>
<td class="nump">2,574<span></span>
</td>
<td class="nump">2,507<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="nump">674<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current installments of long-term debt</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">2,857<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">16,308<span></span>
</td>
<td class="nump">20,658<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt, excluding current portion</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">22,286<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">4,921<span></span>
</td>
<td class="nump">4,129<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent', window );">Non-qualified deferred compensation plan</a></td>
<td class="nump">2,788<span></span>
</td>
<td class="nump">2,044<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liabilities</a></td>
<td class="nump">2,416<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">334<span></span>
</td>
<td class="nump">24<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">26,767<span></span>
</td>
<td class="nump">49,141<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 14)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockValue', window );">Preferred stock, $.01 par value, 1,000,000 shares authorized; no shares issued</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock, $.01 par value, 20,000,000 shares authorized; 7,475,768 and 7,446,209 shares issued and outstanding, respectively at December 31, 2019; and 7,415,002 and 7,385,443 shares issued and outstanding, respectively, at December 31, 2018</a></td>
<td class="nump">74<span></span>
</td>
<td class="nump">74<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">30,952<span></span>
</td>
<td class="nump">29,168<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">131,552<span></span>
</td>
<td class="nump">111,802<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TreasuryStockValue', window );">Treasury stock at cost, 29,559 shares at December 31, 2019 and 2018</a></td>
<td class="num">(587)<span></span>
</td>
<td class="num">(587)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders' equity</a></td>
<td class="nump">161,991<span></span>
</td>
<td class="nump">140,457<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders' equity</a></td>
<td class="nump">$ 188,758<span></span>
</td>
<td class="nump">$ 189,598<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118952595&amp;loc=d3e4428-111522<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=118952595&amp;loc=d3e4531-111522<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.14)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders. Includes adjustments to additional paid in capital. Some examples of such adjustments include recording the issuance of debt with a beneficial conversion feature and certain tax consequences of equity instruments awarded to employees. Use this element for the aggregate amount of additional paid-in capital associated with common and preferred stock. For additional paid-in capital associated with only common stock, use the element additional paid in capital, common stock. For additional paid-in capital associated with only preferred stock, use the element additional paid in capital, preferred stock.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -URI http://asc.fasb.org/extlink&amp;oid=115929826&amp;loc=d3e8736-108599<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6801-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=118932676&amp;loc=d3e3044-108585<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.25)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118942415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130531-203044<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118944033&amp;loc=SL49130532-203044<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118956577&amp;loc=SL49130549-203045<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate carrying value as of the balance sheet date of the liabilities for all deferred compensation arrangements payable beyond one year (or the operating cycle, if longer).</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationPlanAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of assets held under deferred compensation agreements.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCompensationPlanAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=116821951&amp;loc=d3e31931-109318<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=77989000&amp;loc=SL49117168-202975<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=99380562&amp;loc=d3e13770-109266<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Carrying amount due within one year of the balance sheet date (or one operating cycle, if longer) from tax authorities as of the balance sheet date representing refunds of overpayments or recoveries based on agreed-upon resolutions of disputes.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.5(c))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03.10)<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.3(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph ((a)(1),(b))<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6388964&amp;loc=d3e16212-109274<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 35<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=116846819&amp;loc=d3e3927-108312<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.6(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19-26)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=6876686&amp;loc=d3e534808-122878<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.21)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,20)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=77888419&amp;loc=SL77918627-209977<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.24)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6787-107765<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)<br> -URI http://asc.fasb.org/extlink&amp;oid=118951113&amp;loc=d3e6676-107765<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 10<br> -Section 05<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=68074540&amp;loc=d3e5879-108316<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.13)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6391035&amp;loc=d3e2868-110229<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The cumulative amount of the reporting entity's undistributed earnings or deficit.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=119400593&amp;loc=d3e572229-122910<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=27012166&amp;loc=d3e187085-122770<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -URI http://asc.fasb.org/extlink&amp;oid=27010918&amp;loc=d3e74512-122707<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=6405834&amp;loc=d3e23315-112656<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.29,30)<br> -URI http://asc.fasb.org/extlink&amp;oid=6877327&amp;loc=d3e13212-122682<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6405813&amp;loc=d3e23239-112655<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>103
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778903968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Stock Option and Equity Incentive Plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Share-based Payment Arrangement [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">12</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Stock Option and Equity Incentive Plans</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Share-based compensation is measured at the grant date based on the fair value of the award and is recognized as an expense over the requisite service period (generally the vesting period of the equity grant).</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company issues share-based awards through several plans that are described below. The compensation cost charged against income for those plans is included in selling, general &amp; administrative expenses as follows (in thousands):</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; text-decoration: underline;">Share-based compensation related to:</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Common stock grants</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">400</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">505</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">505</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Stock option grants</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">151</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">149</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">138</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restricted Stock Unit awards</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,040</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">558</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">425</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total share-based compensation</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,591</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,212</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,068</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"><div style="display: inline; text-decoration: underline;">Incentive Plan</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">In <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 2003, </div>the Company formally adopted the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2003</div> Incentive Plan (the &#x201c;Plan&#x201d;). As amended and restated to date, the Plan is intended to benefit the Company by offering equity-based and other incentives to certain of the Company&#x2019;s executives and employees who are in a position to contribute to the long-term success and growth of the Company, thereby encouraging the continuance of their involvement with the Company and/or its subsidiaries.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">Two types of equity awards <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be granted to participants under the Plan: restricted shares or other stock awards. Restricted shares are shares of common stock awarded subject to restrictions and to possible forfeiture upon the occurrence of specified events. Other stock awards are awards that are denominated or payable in, valued in whole or in part by reference to, or otherwise based on or related to, shares of common stock. Such awards <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>include Restricted Stock Unit Awards (&#x201c;RSUs&#x201d;), unrestricted stock, incentive and non-qualified stock options, performance shares, or stock appreciation rights. The Company determines the form, terms, and conditions, if any, of any awards made under the Plan.</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt">Through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,252,613</div> shares of common stock have been issued under the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2003</div> Incentive Plan, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">none</div> of which have been restricted. An additional <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">108,424</div> shares are being reserved for outstanding grants of RSUs and other share-based compensation that are subject to various performance and time-vesting contingencies. The Company has also granted awards in the form of stock options under this Plan. Through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">185,000</div> options have been granted and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">10,000</div> options are outstanding. At <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">803,244</div> shares or options are available for future issuance in the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2003</div> Incentive Plan.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 53; Value: 1 --> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"><div style="display: inline; text-decoration: underline;">Director Plan</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Effective <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> July 15, 1998, </div>the Company adopted the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1998</div> Director Plan, which was amended and renamed, on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 3, 2009, </div>the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2009</div> Non-Employee Director Stock Incentive Plan (the &#x201c;Director Plan&#x201d;). The Director Plan was amended on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> March 7, 2013, </div>to (i) prohibit the repricing of stock options or other equity awards without the consent of the Company&#x2019;s shareholders, and (ii) prohibit the Company from buying out underwater stock options. The Director Plan, as amended, provides for the issuance of stock options and other equity-based securities of up to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">975,000</div> shares to non-employee members of the Company&#x2019;s board of directors. Through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">365,026</div> options have been granted and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">95,614</div> options are outstanding. For the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,442</div> RSUs are being reserved for outstanding grants of RSUs, and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">79,648</div> shares remained available to be issued under the Director Plan.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The following is a summary of stock option activity under all plans:</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt; text-align: center">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares Under<br /> Options</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted<br /> Average<br /> Exercise<br /> Price</div><br /> <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400">(per share)</div></td> <td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Weighted<br /> Average<br /> Remaining<br /> Contractual<br /> Life</div><br /> <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400">(in years)</div></td> <td style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: 400; font-style: normal; text-align: center; border-bottom: Black 1pt solid"><div style="display: inline; font-weight: bold;">Aggregate<br /> Intrinsic<br /> Value</div><br /> <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 400">(in thousands)</div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt">Outstanding December 31, 2018</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">134,043</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20.46</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td> <td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td> <td style="font-size: 10pt; text-align: right; width: 10%"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left; width: 1%">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Granted</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,536</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">38.61</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Exercised</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(44,965</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">15.68</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">&nbsp;</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Outstanding December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">105,614</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25.34</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.70</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,563</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Exercisable at December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">85,328</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22.62</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.10</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,303</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Vested and expected to vest at December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">105,614</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25.34</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5.70</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,563</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">During the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> the total intrinsic value of all options exercised (i.e.,&nbsp;the difference between the market price and the price paid by the employees to exercise the options) was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.0,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.2</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.6</div> million, respectively, and the total amount of consideration received from the exercise of these options was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.7</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$1.3</div> million and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.8</div> million, respectively. At its discretion, the Company allows option holders to surrender previously-owned common stock in lieu of paying the exercise price and withholding taxes. During the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div></div> shares were surrendered for this purpose. During the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">6,511</div> shares were surrendered to pay the exercise price at an average market price of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$26.45.</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 19, 2019, </div>the Company&#x2019;s Compensation Committee approved the award of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$400</div> thousand payable in shares of the Company&#x2019;s common stock to the Company&#x2019;s Chairman, Chief Executive Officer, and President under the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2003</div> Equity Incentive Plan. The shares were issued on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 12, 2019.</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> June 5, 2019 </div>the Company issued <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16,536</div> shares of unrestricted common stock to the non-employee members of the Company&#x2019;s Board of Directors as part of their annual retainer for serving on the Board.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 54; Value: 1 -->  <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">The Company grants RSUs to its executive officers and employees. The stock unit awards are subject to various time-based vesting requirements, and certain portions of these awards are subject to performance criteria of the Company. Compensation expense on these awards is recorded based on the fair value of the award at the date of grant, which is equal to the Company&#x2019;s closing stock price, and is charged, to expense ratably during the service period. <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">No</div> compensation expense is taken on awards that do <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> become vested, and the amount of compensation expense recorded is adjusted based on management&#x2019;s determination of the probability that these awards will become vested. The following table summarizes information about stock unit award activity during the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019:</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted<br /> Stock Units</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Weighted<br /> Average Award<br /> Date Fair Value</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Outstanding at December 31, 2018</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72,996</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.60</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Awarded</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">64,701</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33.55</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Shares vested</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(20,529</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23.74</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Forfeitures</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(3,302</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">33.31</div></td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 2.5pt">Outstanding at December 31, 2019</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">113,866</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left">$</td> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28.36</div></td> <td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">At the Company&#x2019;s discretion, RSU holders are given the option to net-share settle to cover the required minimum withholding tax, and the remaining amount is converted into the equivalent number of common shares. During the year ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,341</div> shares were redeemed for this purpose at an average market price of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$33.69.</div> During the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2018 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2017,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5,238</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,377</div> shares were redeemed for this purpose at an average market price of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$27.60</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$24.50,</div> respectively.</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The following summarizes the future share-based compensation expense the Company will record as the equity securities granted through <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div>vest (in thousands):</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" margin: 0pt 0; text-indent: 1in"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Options</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Restricted<br /> Stock Units</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">2020</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">999</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,115</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">2021</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">746</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">746</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">2022</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">409</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">409</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">2023</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">48</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">48</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">116</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,202</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,318</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -URI http://asc.fasb.org/topic&amp;trid=2228938<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>104
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6673328752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Receivables<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock', window );">Loans, Notes, Trade and Other Receivables Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Receivables</div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Receivables consist of the following (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2019</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold; text-align: center">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Accounts receivable&#x2013;trade</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">29,134</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28,885</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Less allowance for doubtful receivables</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(486</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(564</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Receivables, net</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28,648</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">28,321</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Receivables are written off against these reserves in the period they are determined to be uncollectable, and payments subsequently received on previously written-off receivables are recorded as a reversal of the bad debt provision. The Company performs credit evaluations on its customers and obtains credit insurance on a large percentage of its accounts but does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> generally require collateral. The Company recorded a net reversal of the provision for doubtful accounts of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$52</div> thousand and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$50</div> thousand the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December&nbsp;</div><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">31,</div> <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019</div> and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> respectively.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -URI http://asc.fasb.org/subtopic&amp;trid=2196772<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>105
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6778451600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Indebtedness<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Debt Disclosure [Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: top"> <td style="width: 0"></td> <td style="width: 27.35pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8</div>)</div></td> <td><div style="display: inline; font-weight: bold;">Indebtedness </div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 0.25in">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">On <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 1, 2018, </div>the Company, as the borrower, entered into an unsecured <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$70</div> million Amended and Restated Credit Agreement (the &#x201c;Amended and Restated Credit Agreement&#x201d;) with the Company&#x2019;s subsidiaries (the &#x201c;Subsidiary Guarantors&#x201d;) and Bank of America, N.A., in its capacity as the initial lender, Administrative Agent, Swingline Lender and L/C Issuer, and certain other lenders from time to time party thereto. The Amended and Restated Credit Agreement amends and restates the Company&#x2019;s prior credit agreement.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The credit facilities under the Amended and Restated Credit Agreement (the &#x201c;Amended and Restated Credit Facilities&#x201d;) consist of a <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$20</div> million unsecured term loan and an unsecured revolving credit facility, under which the Company <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>borrow up to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$50</div> million. The Amended and Restated Credit Agreement matures on <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> February 1, 2023.&nbsp;</div>The proceeds borrowed pursuant to the Amended and Restated Credit Agreement <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>be used for general corporate purposes, as well as permitted acquisitions. The Company&#x2019;s obligations under the Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Amended and Restated Credit Agreement calls for interest of LIBOR plus a margin that ranges from <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.0%</div> to <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.5%</div> or, at the discretion of the Company, the bank&#x2019;s prime rate less a margin that ranges from <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">.25%</div> to zero. In both cases the applicable margin is dependent upon Company performance.&nbsp;Under the Amended and Restated Credit Agreement, the Company is subject to a minimum fixed-charge coverage financial covenant as well as a maximum total funded debt to EBITDA financial covenant.&nbsp;The Amended and Restated Credit Agreement contains other covenants customary for transactions of this type, including restrictions on certain payments, permitted indebtedness and permitted investments.&nbsp;As of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019, </div>the applicable interest rate was approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.8%</div> and the Company was in compliance with all covenants under the Amended and Restated Credit Agreement.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 48; Value: 1 -->  <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">Included in the Amended and Restated Credit Facilities were approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$0.7</div> million in standby letters of credit as a financial guarantee on worker&#x2019;s compensation insurance policies.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27.35pt">Long-term debt consists of the following (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div> <table style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-width: 700px;" cellspacing="0" cellpadding="0">  <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Revolving credit facility</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">8,000</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Term loan</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">17,143</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Total long-term debt</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">25,143</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt; text-indent: 10pt">Current portion</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,857</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Long-term debt, excluding current portion</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,286</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt"><div style="display: inline; font-style: italic;">Derivative Financial Instruments</div></div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company used interest-rate-related derivative instruments to manage its exposure related to changes in interest rates on certain of its variable-rate debt instruments. The Company does <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> enter into derivative instruments for any purpose other than cash flow hedging. Derivative financial instruments expose the Company to credit risk and market risk. Credit risk is the failure of the counterparty to perform under the terms of the derivative contract. When the fair value of a derivative contract is positive, the counterparty owes the Company, creating credit risk for the Company. When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, in these circumstances the Company is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">not</div> exposed to the counterparty&#x2019;s credit risk. The Company minimizes counterparty credit risk in derivative instruments by entering into transactions with carefully selected major financial institutions based upon their credit profile. Market risk is the adverse effect on the value of a derivative instrument that results from a change in interest rates.</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">The Company assesses interest rate risk by continually identifying and monitoring changes in interest rate exposures that <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> may </div>adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&#x2019;s debt obligations exposed the Company to variability in interest payments due to changes in interest rates. The Company believed that it was prudent to limit the variability of a portion of its interest payments. To meet this objective, in connection with the Amended and Restated Credit Agreement, the Company entered into a <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$20</div> million, <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">5</div>-year interest rate swap agreement under which the Company receives <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">three</div>-month LIBOR plus the applicable margin and pays a <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.7%</div> fixed rate plus the applicable margin. The swap modified the Company&#x2019;s interest rate exposure by converting the term loan from a variable rate to a fixed rate in order to hedge against the possibility of rising interest rates during the term of the loan. The notional amount was <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$14,285,712</div> at <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019. </div>The fair value of the swap as of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>was approximately $(<div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">325</div>) thousand and is included in other liabilities. Changes in the fair value of the swap are recorded in other income/expense and resulted in expense of approximately <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$388</div> thousand and income of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">$64</div> thousand during the years ended <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"> December 31, 2019 </div>and <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2018,</div> respectively.</div> <div style=" font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" font-size: 10pt; margin: 0pt 0 0pt 27pt">During the <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">fourth</div> quarter of <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2019,</div> the Company paid the remaining balance of the term loan in its entirety. As a result, there is <div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">no</div></div> longer underlying debt to hedge against with the swap. The changes in the fair value of the swap will continue to be accounted for as a financial instrument until the sooner of the time that the Company elects to cancel it or until its maturity.</div></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -URI http://asc.fasb.org/topic&amp;trid=2208564<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>106
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6646669360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Income Tax (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Current</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 55%; font-size: 10pt">Federal</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,920</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,772</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,117</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">State</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">185</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">439</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">551</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,105</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,211</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,668</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Deferred</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt">Federal</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">485</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,917</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,091</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt">State</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">306</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(36</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">72</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">791</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,881</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="padding-bottom: 1pt; font-size: 10pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,019</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Total income tax provision</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3,896</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">4,092</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,649</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 0pt; font-size: 10pt; text-align: left">Deferred tax assets:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Reserves</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">362</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Inventory capitalization</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">396</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">421</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Compensation programs</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">578</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">447</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Retirement liability</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Equity-based compensation</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">403</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">290</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Lease liability</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">795</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">11</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Intangible assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">73</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">141</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">State tax credits, net of federal impact</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">274</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">257</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Gross deferred tax assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,881</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,936</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Valuation allowance</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(136</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left">Net deferred tax assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2,745</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,936</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 0pt; font-size: 10pt; text-align: left">Deferred tax liabilities:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Excess of book over tax basis of fixed assets</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,877</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,668</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Goodwill</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,008</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,397</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Right of use asset</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(781</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Total deferred tax liabilities</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(7,666</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(6,065</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-indent: 20pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">Net long-term deferred tax liabilities</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,921</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(4,129</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="11" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Years Ended December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2017</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 55%; font-size: 10pt; text-align: left">Computed &#x201c;expected&#x201d; tax rate</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">34.0</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">%</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Increase (decrease) in income taxes resulting from:</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">State taxes, net of federal tax benefit</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1.8</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">2.8</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">3.5</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Meals and entertainment</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.2</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.2</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.3</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Tax credits</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(6.2</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1.9</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(0.6</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Domestic production deduction</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2.6</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Non-deductible ISO stock option expense</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Unrecognized tax benefits</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(0.7</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Excess tax benefits on equity awards</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(0.7</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1.3</div></td> <td style="font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1.4</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Excess compensation</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.6</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.8</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Impact on deferred taxes of new legislation</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(11.1</div></td> <td style="font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.4</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.5</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Change in valuation allowance</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">0.1</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Effective tax rate</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">16.5</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22.2</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22.3</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">December 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2019</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2018</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt; text-align: left">Gross UTB balance at beginning of fiscal year</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">150</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">150</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Reductions for tax positions of prior years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(150</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Gross UTB balance at end of fiscal year</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">-</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">150</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32687-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 55<br> -Paragraph 217<br> -URI http://asc.fasb.org/extlink&amp;oid=117331294&amp;loc=d3e36027-109320<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 15A<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=SL6600010-109319<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>107
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.20.1</span><table class="report" border="0" cellspacing="2" id="idp6781934928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Other Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2019</div></th></tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TableTextBlock', window );"><strong>Notes Tables</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; text-decoration: underline;">December 31, 2019</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename &amp; Brand</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br /> Compete</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br /> List</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt">Estimated useful life </td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,384</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(70</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(177</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,162</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(2,409</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Net balance</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">297</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">285</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,393</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,975</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt; font-weight: bold"><div style="display: inline; text-decoration: underline;">December 31, 2018</div></td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Tradename &amp; Brand</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Non-<br /> Compete</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Customer<br /> List</td> <td style="font-size: 10pt; font-weight: bold; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; font-size: 10pt">Estimated useful life</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt; text-align: center">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 48%; font-size: 10pt; text-align: left">Gross amount</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">367</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">462</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,555</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> <td style="width: 1%; font-size: 10pt">&nbsp;</td> <td style="width: 1%; font-size: 10pt; text-align: left">$</td> <td style="width: 10%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">23,384</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Accumulated amortization</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(33</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(85</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,034</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> <td style="font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">(1,152</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Net balance</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">334</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">377</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">21,521</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; padding-bottom: 2.5pt">&nbsp;</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">22,232</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td> </tr> </table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</a></td>
<td class="text"><div style="display: inline; font-family: times new roman; font-size: 10pt"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin: 0pt 0pt 0pt 0.4in; min-; min-width: 700px;"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 35%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2020</div></td> <td style="width: 1%; font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></div></td> <td style="width: 1%; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White; width: 50%"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2021</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2022</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,257</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2023</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,172</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">2024</div></td> <td style="font-size: 10pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">1,164</div></div></td> <td style="font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">Thereafter</div></td> <td style="font-size: 10pt; padding-bottom: 1pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">14,868</div></div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">Total</div></td> <td style="font-size: 10pt; padding-bottom: 2.5pt"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">$</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-style: italic; font-weight: inherit; font-style: normal;">20,975</div></div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> <td style="background-color: White"><div style="display: inline; font-size: 10pt">&nbsp;</div></td> </tr> </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 350<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16323-109275<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
