<SEC-DOCUMENT>0001171843-20-003541.txt : 20200508
<SEC-HEADER>0001171843-20-003541.hdr.sgml : 20200508
<ACCEPTANCE-DATETIME>20200508090116
ACCESSION NUMBER:		0001171843-20-003541
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		69
CONFORMED PERIOD OF REPORT:	20200331
FILED AS OF DATE:		20200508
DATE AS OF CHANGE:		20200508

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-Q
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-12648
		FILM NUMBER:		20858929

	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-Q
<SEQUENCE>1
<FILENAME>f10q_050820p.htm
<DESCRIPTION>FORM 10-Q
<TEXT>
<HTML><HEAD>
     <TITLE></TITLE>
</HEAD><BODY STYLE="font: 10pt Times New Roman, Times, Serif">





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

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

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

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

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

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

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

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

<p style="margin: 0pt 0 0pt 22.5pt; font-size: 10pt; text-indent: -22.5pt">[X] QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d)
OF THE SECURITIES EXCHANGE ACT OF 1934</p>

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

<p style="margin: 0pt 0 0pt 22.5pt; font-size: 10pt; text-indent: 0.75in">For the quarterly period ended <u>&nbsp;&nbsp;&nbsp;&nbsp;<font style="text-transform: uppercase"><b>MARCH
31, 2020&nbsp;&nbsp; &nbsp;</b></font></u></p>

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

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

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

<p style="margin: 0pt 0 0pt 0.25in; font-size: 10pt; text-indent: -0.25in">[&nbsp; ] TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d)
OF THE SECURITIES EXCHANGE ACT OF 1934</p>

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

<p style="margin: 0pt 0 0pt 0.25in; font-size: 10pt; text-indent: 0.75in">For the transition period from _________ to _________</p>

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

<p style="margin: 0pt 0; font-size: 10pt">Commission File Number: <b><u>001-12648</u></b></p>

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

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

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

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

<table cellspacing="0" cellpadding="0" style="width: 100%; font-size: 10pt; border-collapse: collapse">
<tr style="vertical-align: top">
    <td style="white-space: nowrap; width: 50%; font-size: 10pt; text-align: center"><font style="font-size: 10pt"><b><u>Delaware</u></b></font></td>
    <td style="white-space: nowrap; width: 50%; font-size: 10pt; text-align: center"><font style="font-size: 10pt"><b><u>04-2314970</u></b></font></td></tr>
<tr style="vertical-align: top">
    <td style="white-space: nowrap; font-size: 10pt; text-align: center"><font style="font-size: 10pt">(State or other jurisdiction of incorporation or organization)</font></td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: center"><font style="font-size: 10pt">(I.R.S. Employer Identification No.)</font></td></tr>
</table>
<p style="margin: 0pt 0; font-size: 10pt; text-align: center">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b><u>100 Hale Street, Newburyport, MA 01950, USA</u></b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center">(Address of principal executive offices) (Zip Code)</p>

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

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

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

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

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center">(Former name, former address, and former fiscal year, if changed
since last report)</p>

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

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

<p style="margin: 0pt 0; font-size: 10pt">&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: 39%; border: Black 1pt solid; text-align: center"><font style="font-size: 10pt">Title of each class</font></td>
    <td style="white-space: nowrap; width: 24%; 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: 37%; 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="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">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.</p>

<p style="margin: 0pt 0 0pt 0.3in; font-size: 10pt">Yes&nbsp; <u>X </u>; No ____</p>

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

<p style="margin: 0pt 0; font-size: 10pt"><font style="color: windowtext">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</font> (&#167;232.405
of this chapter) <font style="color: windowtext">during the preceding 12 months (or for such shorter period that the registrant
was required to submit such files).</font></p>

<p style="margin: 0pt 0 0pt 0.3in; font-size: 10pt">Yes&nbsp; <u>X</u> ; No ____</p>

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

<p style="margin: 0pt 0; font-size: 10pt">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated
filer, a non-accelerated filer, 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&nbsp;12b-2 of the Exchange Act.</p>

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

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr>
    <td style="text-indent: 20pt; width: 56%"><font style="font-size: 10pt">Large&nbsp;accelerated&nbsp;filer&nbsp;&#9744;</font></td>
    <td style="vertical-align: top; width: 44%"><font style="font-size: 10pt">Accelerated&nbsp;filer&nbsp;&#9746;</font></td></tr>
<tr style="vertical-align: top">
    <td style="text-indent: 20pt"><font style="font-size: 10pt">Non-accelerated filer&nbsp;&#9744;</font></td>
    <td><font style="font-size: 10pt">Smaller&nbsp;reporting&nbsp;company&nbsp;&#9744;</font></td></tr>
<tr style="vertical-align: top">
    <td>&nbsp;</td>
    <td><font style="font-size: 10pt">Emerging growth company&nbsp;&#9744;</font></td></tr>
</table>
<p style="margin: 0pt 0 0pt 0.25in; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">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="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

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

<p style="margin: 0pt 0 0pt 0.3in; font-size: 10pt">Yes ____; No&nbsp; <u>X</u></p>

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

<p style="margin: 0pt 0; font-size: 10pt">7,482,844 shares of registrant&#8217;s Common Stock, $0.01 par value, were outstanding
as of May 1, 2020.</p>

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

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

<!-- Field: Page; Sequence: 1; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

<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; text-align: center"><b>UFP Technologies, Inc.</b></p>

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

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

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

<p style="margin: 0pt 0.9pt 0pt 0; font-size: 10pt; text-align: right"><u>Page</u></p>

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

<table cellspacing="0" cellpadding="3" style="width: 100%; border-collapse: collapse; font-size: 10pt">
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 95%; font-size: 10pt; text-align: left"><a href="#a_001"><font style="font-size: 10pt">PART I - FINANCIAL INFORMATION</font></a></td>
    <td style="width: 5%; font-size: 10pt; text-align: right"><a href="#a_001"><font style="font-size: 10pt">3</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><a href="#a_002"><font style="font-size: 10pt">Item 1. Financial Statements</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_002"><font style="font-size: 10pt">3</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-left: 0.25in"><a href="#a_003"><font style="font-size: 10pt">Condensed Consolidated Balance Sheets as of
    March 31, 2020 and&nbsp;December 31, 2019 (unaudited)</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_003"><font style="font-size: 10pt">3</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-left: 0.25in"><a href="#a_004"><font style="font-size: 10pt">Condensed Consolidated Statements of Income
    for the Three Months Ended March 31, 2020 and&nbsp;March 31, 2019 (unaudited)</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_004"><font style="font-size: 10pt">4</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-left: 0.25in"><a href="#a_005"><font style="font-size: 10pt">Condensed Consolidated Statements of Stockholders&#8217;
    Equity for the Three Months Ended March 31, 2020 and&nbsp;March 31, 2019 (unaudited)</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_005"><font style="font-size: 10pt">5</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-left: 0.25in"><a href="#a_006"><font style="font-size: 10pt">Condensed Consolidated Statements of Cash
    Flows for the Three Months Ended March 31, 2020 and&nbsp;March 31, 2019 (unaudited)</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_006"><font style="font-size: 10pt">6</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left; padding-left: 0.25in"><a href="#a_007"><font style="font-size: 10pt">Notes to Interim Condensed
    Consolidated Financial Statements</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_007"><font style="font-size: 10pt">7</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><a href="#a_008"><font style="font-size: 10pt">Item 2. Management's Discussion and Analysis of
    Financial Condition and Results of Operations</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_008"><font style="font-size: 10pt">17</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><a href="#a_009"><font style="font-size: 10pt">Item 4. Controls and Procedures</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_009"><font style="font-size: 10pt">22</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; text-align: left"><a href="#a_010"><font style="font-size: 10pt">PART II - OTHER INFORMATION</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_010"><font style="font-size: 10pt">23</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><a href="#a_011"><font style="font-size: 10pt">Item 1A. Risk Factors</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_011"><font style="font-size: 10pt">23</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><a href="#a_012"><font style="font-size: 10pt">Item 2. Unregistered Sales of Equity Securities
    and Use of Proceeds</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_012"><font style="font-size: 10pt">24</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left"><a href="#a_013"><font style="font-size: 10pt">Item 6. Exhibits</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_013"><font style="font-size: 10pt">24</font></a></td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt"><a href="#a_014"><font style="font-size: 10pt">Signatures</font></a></td>
    <td style="font-size: 10pt; text-align: right"><a href="#a_014"><font style="font-size: 10pt">25</font></a></td></tr>
</table>


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

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

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

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

<!-- Field: Page; Sequence: 2; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

<p style="margin: 0pt 1.7in 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; text-align: justify">
<td style="width: 0; text-align: right"></td><td style="width: 68.85pt"><a name="a_001"></a><b>PART I: </b></td><td style="text-align: justify"><b>FINANCIAL INFORMATION</b></td>
</tr></table>
<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: 68.85pt"><a name="a_002"></a><b>ITEM 1:</b></td><td><b>FINANCIAL STATEMENTS</b></td></tr></table>

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

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><a name="a_003"></a><b>Condensed Consolidated Balance Sheets</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center">(In thousands, except share data)</p>

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

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

<p style="margin: 0pt 0; color: Red; font-size: 10pt"><b>&nbsp;</b></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="3" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,<br> 2020</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">December 31,<br> 2019</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">&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 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="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">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">7,334</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,743</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; padding-left: 20pt">Receivables, less allowance of $541 at March 31, 2020 and $486 at December 31, 2019</td><td 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,449</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></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">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">20,242</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <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">2,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">&nbsp;</td><td style="font-size: 10pt; text-align: right">2,304</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">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">-</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">279</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; text-indent: 0pt; padding-left: 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">59,775</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">53,250</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">117,292</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 1pt">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">(61,062</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">(59,350</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; text-indent: 0pt; padding-left: 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,230</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">56,739</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,661</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></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,790</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></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">2,771</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></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">148</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">147</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; text-indent: 0pt; padding-left: 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">194,213</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">188,758</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="text-indent: 10pt; font-size: 10pt; text-align: left">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">7,535</td><td 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">4,577</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">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">6,350</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">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,432</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; 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">1,140</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,150</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">Income taxes payable</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</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">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">17,462</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">16,784</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">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">5,342</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></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,817</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <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">1,687</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,940</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 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">630</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">334</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">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">27,938</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">26,767</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">Commitments and contingencies</td><td 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">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="padding-left: 20pt; text-indent: -10pt; font-size: 10pt">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: rgb(204,238,255)">
    <td style="padding-left: 20pt; text-indent: -10pt; font-size: 10pt">Common stock, $.01 par value, 20,000,000 shares authorized; 7,512,403 and 7,482,844 shares issued and outstanding, respectively at March 31, 2020;7,475,768 and 7,446,209 shares issued and outstanding, respectively at December 31, 2019</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">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">74</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 20pt; text-indent: -10pt; font-size: 10pt">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">31,344</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="padding-left: 20pt; text-indent: -10pt; font-size: 10pt">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">135,443</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="padding-left: 20pt; text-indent: -10pt; font-size: 10pt">Treasury stock at cost, 29,559 shares at March 31, 2020 and December 31, 2019</td><td 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: rgb(204,238,255)">
    <td style="padding-left: 20pt; text-indent: 0pt; font-size: 10pt">Total stockholders&#8217; 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">166,275</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">161,991</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 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">194,213</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">188,758</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; color: Red; font-size: 10pt"><b></b></p>

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

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

<p style="margin: 0pt 0; font-size: 10pt">The accompanying notes are an integral part of these condensed consolidated financial
statements.</p>

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

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

<!-- Field: Page; Sequence: 3; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><a name="a_004"></a><b>Condensed Consolidated Statements of Income</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center">(In thousands, except per share data)</p>

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

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></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">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; text-align: center">Three Months 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">March 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">2020</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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; 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">48,277</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">47,328</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">35,454</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">34,831</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">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,823</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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></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">7,752</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,244</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 on sale of fixed 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">(4</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: 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">5,075</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,253</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 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">16</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">231</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 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">327</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">239</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">Income before income tax 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">4,732</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,783</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">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">841</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">1,049</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">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">3,891</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,734</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">&nbsp;</td><td 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-style: italic; text-align: left">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">&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; text-align: left">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">0.52</td><td 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">0.50</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</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">0.52</td><td 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">0.50</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-style: italic; text-align: left">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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">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,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">&nbsp;</td><td style="font-size: 10pt; text-align: right">7,402</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">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,538</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,466</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">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">The accompanying notes are an integral part of these condensed consolidated financial
statements.</p>

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

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

<!-- Field: Page; Sequence: 4; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0; font-size: 10pt"></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>UFP Technologies, Inc.</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><a name="a_005"></a><b>Condensed Consolidated Statements of Stockholders&#8217; Equity</b></p>

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center">(Unaudited)</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="stockholders-equity"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%">
<tr style="vertical-align: bottom">
    <td colspan="29" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended March 31, 2020</td></tr>
<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; text-align: left">&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="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="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Capital</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Earnings</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Equity</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">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="white-space: nowrap; width: 44%; font-size: 10pt; font-weight: bold">Balance at December 31, 2019</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">7,446</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">74</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">30,952</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">131,552</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">30</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">(587</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">161,991</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">Share-based compensation</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">28</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">537</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">537</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt">Exercise of stock options</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">20</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">1</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">415</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">416</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 10pt">Net share settlement of restricted stock units</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">(11</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">(560</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">(560</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,891</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,891</td><td style="white-space: nowrap; 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="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 2.5pt">Balance at March 31, 2020</td><td style="white-space: nowrap; padding-bottom: 2.5pt; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,483</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">75</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">31,344</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">135,443</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">30</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">(587</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">166,275</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>




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

<p style="margin: 0">&nbsp;</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 colspan="29" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended March 31, 2019</td></tr>
<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="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="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Capital</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Earnings</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Shares</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Amount</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Equity</td></tr>
<tr style="vertical-align: bottom">
    <td 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">&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">&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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="white-space: nowrap; width: 44%; font-size: 10pt; font-weight: bold">Balance at December 31, 2018</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">7,385</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">74</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">29,168</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">111,802</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">30</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">(587</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; width: 1%; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; width: 5%; font-size: 10pt; text-align: right">140,457</td><td style="white-space: nowrap; width: 1%; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">Share-based compensation</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">20</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">294</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">294</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt">Exercise of stock options</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">17</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">285</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">285</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left; text-indent: -10pt; padding-left: 10pt">Net share settlement of restricted
    stock units</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">(8</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">(271</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">(271</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">)</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt; text-align: left; padding-bottom: 1pt">Net income</td><td style="white-space: nowrap; padding-bottom: 1pt; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,734</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">-</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 1pt solid">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">3,734</td><td style="white-space: nowrap; 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="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: right">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; text-align: left">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="white-space: nowrap; font-size: 10pt; font-weight: bold; padding-bottom: 2.5pt">Balance at March 31, 2019</td><td style="white-space: nowrap; padding-bottom: 2.5pt; font-size: 10pt">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">7,414</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">74</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">29,476</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">115,536</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">30</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">(587</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">)</td><td style="white-space: nowrap; font-size: 10pt; border-bottom: Black 2.5pt double">&nbsp;</td>
    <td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">$</td><td style="white-space: nowrap; border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">144,499</td><td style="white-space: nowrap; 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="font-size: 10pt; text-align: center; margin: 0pt 0"></p>

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

<p style="margin: 0pt 0; font-size: 10pt">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: 5; 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%"><!-- 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">&nbsp;&nbsp;</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="margin: 0pt 0; font-size: 10pt; text-align: center"><b>UFP Technologies, Inc.</b></p>

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b><a name="a_006"></a>Condensed Consolidated Statements of Cash Flows</b></p>

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

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center">&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">&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">Three Months 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">March 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">2020</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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; font-weight: bold; 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="width: 70%; font-size: 10pt; text-align: left">Net income</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,891</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,734</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: 10pt">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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">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">2,066</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,022</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">Gain on sale 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</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: White">
    <td style="text-indent: 10pt; 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">537</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">294</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">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">421</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">424</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">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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">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">(801</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,451</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">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,966</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">139</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">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">(446</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">364</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">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">284</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">781</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">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">247</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(338</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">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,726</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">(907</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">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">(2,133</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,506</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">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">(142</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">465</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">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">62</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">608</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; font-weight: bold; text-align: left; padding-bottom: 1pt">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">4,742</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">3,629</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; font-weight: bold; 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">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">(1,020</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,388</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">Proceeds from sale of fixed 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">13</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; font-weight: bold; text-align: left; padding-bottom: 1pt">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">(1,007</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,388</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; font-weight: bold; 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">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">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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,000</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">Proceeds from exercise of stock options</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">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">285</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">Payment of statutory withholdings for 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">(560</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">(271</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; font-weight: bold; text-align: left; padding-bottom: 1pt">Net cash used in 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">(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">(2,986</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="text-indent: 10pt; font-size: 10pt; text-align: left">Net increase (decrease) 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">3,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">(745</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: 20pt; font-size: 10pt; font-weight: bold; text-align: left; padding-bottom: 1pt">Cash and cash equivalents at beginning of period</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,743</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">3,238</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; font-weight: bold; text-align: left; padding-bottom: 2.5pt">Cash and cash equivalents at 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">7,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">2,493</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">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">The accompanying notes are an integral part of these condensed consolidated financial
statements.</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>

<!-- Field: Page; Sequence: 6; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"><b><a name="a_007"></a>Notes to Interim Condensed Consolidated Financial Statements</b></p>

<p style="font-size: 10pt; margin: 0pt 0"><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: 27pt"><b>(1)</b></td><td><font style="font-size: 10pt"><b>Basis of Presentation</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The interim condensed consolidated financial statements of UFP Technologies,&nbsp;Inc.
(the &#8220;Company&#8221;) presented herein, have been prepared pursuant to the rules&nbsp;of the Securities and Exchange Commission
for quarterly reports on Form&nbsp;10-Q and do not include all the information and note disclosures required by accounting principles
generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial
statements and notes thereto for the year ended December 31, 2019, included in the Company's 2019 Annual Report on Form&nbsp;10-K,
as filed with the Securities and Exchange Commission.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The condensed consolidated balance sheets as of March 31, 2020 and December
31, 2019, the condensed consolidated statements of income for the three-month periods ended March 31, 2020 and 2019, the condensed
consolidated statements of stockholders&#8217; equity for the three-month periods ended March 31, 2020 and 2019, and the condensed
consolidated statements of cash flows for the three-month periods ended March&nbsp;31, 2020 and 2019 are unaudited but, in the
opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation
of results for these interim periods. The condensed consolidated balance sheet as of December 31, 2019 has been derived from the
Company&#8217;s annual financial statements that were audited by an independent registered public accounting firm but does not
include all of the information and footnotes required for complete audited financial statements.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The preparation of financial statements in conformity with accounting principles
generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported
amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and
the reported amounts of revenues and expenses during the reporting period.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The results of operations for the three-month period ended March 31, 2020 are
not necessarily indicative of the results to be expected for the entire fiscal year ending December 31, 2020.</p>

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

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

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><font style="background-color: white">In June 2016, the Financial Accounting
Standards Board (FASB) issued Accounting Standards Update (ASU) 2016-13, <i>Financial Instruments &#8211; Credit Losses (Accounting
Standards Codification (ASC) 326)</i>. The Company adopted ASC 326 on January 1, 2020. </font><font style="color: windowtext">See
Note 4 for further details</font><font style="background-color: white">.</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"><font style="background-color: white">In January 2017, the FASB issued ASU&nbsp;2017-04,&nbsp;<i>Intangibles&#8212;Goodwill
and Other (ASC 350), Simplifying the Test for Goodwill Impairment</i>. 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&nbsp;15, 2019. The Company adopted ASC 350 on January 1, 2020 and it did not have
a material impact on its financial condition or results of operations.</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"><i>Revisions</i></p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">Certain revisions have been made to the December 31, 2019 Condensed Consolidated
Balance Sheet to conform to the current year presentation relating to a reclassification of long-term operating lease liabilities
to current operating lease liabilities. The reclassification resulted in an increase of current operating lease liabilities of
$476 thousand and a decrease of long-term operating lease liabilities of $476 thousand. These revisions had no impact on previously
reported earnings, net income or cash flows and are deemed immaterial to the previously issued financial statements.</p>

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

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

<!-- Field: Page; Sequence: 7; 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%"><!-- 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">&nbsp;&nbsp;</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" 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: 27pt"><b>(2)</b></td><td><font style="font-size: 10pt"><b>Revenue Recognition</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"><font style="color: windowtext">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&#8217;s </font>promise to transfer the good and are expensed when revenue is recognized.</p>

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

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

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The following table presents the Company&#8217;s revenue disaggregated by
the major types of goods and services sold to our customers (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: 95%; margin-left: 36px">
<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">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td></tr>
<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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid">Net sales of:</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">2020</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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt">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">47,029</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">46,410</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">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">677</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">645</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">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">571</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">273</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 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">48,277</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">47,328</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="color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</p>

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><i>Contract balances</i></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">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="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The following table presents opening and closing balances of contract liabilities
for the three months ended March 31, 2020 and 2019 (in thousands):</p>

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

<p style="color: Red; 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: 95%; margin-left: 36px">
<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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended<br> March 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">2020</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></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,574</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">2,507</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 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">525</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">991</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">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">(667</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">(526</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">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,432</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,972</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; color: Red; font-size: 10pt"></p>

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

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">Revenue recognized during the three months ended March
31, 2020 and 2019 from amounts included in deferred revenue at the beginning of the period was approximately $517 thousand and
$497 thousand, respectively.</p>

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

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

<!-- Field: Page; Sequence: 8; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">When invoicing occurs after revenue recognition, the Company
has unbilled receivables (contract assets) included within &#8220;receivables&#8221; on the condensed consolidated balance sheet.
The Company considered the guidance in ASC 326 upon adoption and in the current period and determined that an allowance for credit
losses was not necessary on the unbilled receivables balance due to there being no history of credit losses. The following table
presents opening and closing balances of contract assets for the three months ended March 31, 2020 and 2019 (in thousands):</p>

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

<p style="color: Red; 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: 95%; margin-left: 36px">
<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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended<br> March 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">2020</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></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">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: 12%; font-size: 10pt; text-align: right">65</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">522</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">85</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">(404</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">(106</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">190</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">44</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; color: Red; font-size: 10pt"></p>

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

<p style="margin: 0pt 0; font-size: 10pt"><i>&nbsp;</i></p></div><p style="margin: 0pt 0; font-size: 10pt"><i></i></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: 27pt"><b>(3)</b></td><td><font style="font-size: 10pt"><b>Supplemental Cash Flow Information</b></font></td></tr></table>

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

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

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<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">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td></tr>
<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="7" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">March 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">2020</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></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; text-align: center">(in thousands)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left">Cash paid for:</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="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Interest</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">12</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">47</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">Income taxes, net of refunds</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">(156</td><td style="font-size: 10pt; text-align: left">)</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; text-align: left">Non-cash investing and 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></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Capital additions accrued but not yet paid</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">232</td><td 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">108</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">Recognition of lease asset and liability</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">3,831</td><td style="font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



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

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

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p></div><p style="margin: 0pt 0; font-size: 10pt"></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: 27pt"><b>(4)</b></td><td><font style="font-size: 10pt"><b>Allowance for Credit Losses</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">Effective January 1, 2020, the Company adopted ASU 2016-13, Financial
Instruments &ndash; Credit Losses (ASC 326) which is required to be applied by means of a cumulative-effect adjustment to the opening
retained earnings balance as of the adoption date. This ASU replaces the incurred loss impairment model with an expected credit
loss impairment model for financial instruments, including trade receivables and contract assets. The amendment requires entities
to consider forward-looking information to estimate expected credit losses, resulting in earlier recognition of losses for receivables
that are current or not yet due, which were not considered under the previous accounting guidance. There was no impact to the Company&rsquo;s
opening retained earnings or its consolidated balance sheet upon adoption.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The Company is exposed to credit losses primarily through sales of products
and services. The Company&#8217;s expected loss allowance methodology for accounts receivable is developed using historical collection
experience, current and future economic and market conditions and a review of the current status of customers' trade accounts receivables.
Due to the short-term nature of such receivables, the estimate of amount of accounts receivable that may not be collected is based
on aging of the accounts receivable balances and the financial condition of customers. Additionally, specific allowance amounts
are established to record the appropriate provision for customers that have a higher probability of default. The Company&#8217;s
monitoring activities include timely account reconciliation, dispute resolution, payment confirmation, consideration of customers'
financial condition and macroeconomic conditions. Balances are written off when determined to be uncollectible. The Company considered
the current and expected future economic and market conditions surrounding the novel coronavirus ("COVID-19") pandemic
and included specific allowance amounts for any customer determined to have been significantly impacted. Estimates are used to
determine the allowance. It is based on assessment of anticipated payment and all other historical, current and future information
that is reasonably available.</p>

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

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

<!-- Field: Page; Sequence: 9; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The following table provides a roll-forward of the allowance for credit losses
that is deducted from the amortized cost basis of accounts receivable to present the net amount expected to be collected for the
three months ended March 31, 2020 (in thousands):</p>

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

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

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<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">Allowance for Credit<br>
 Losses</td></tr>
<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">Three Months Ended<br>
 March 31, 2020</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 85%; font-size: 10pt">Allowance - 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">486</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">Provision for expected credit losses</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">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; padding-bottom: 1pt">Amounts written off against the 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">(5</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">Allowance - 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">541</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; color: Red; font-size: 10pt"></p>

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

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p></div><p style="margin: 0pt 0; font-size: 10pt"></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: 27pt"><b>(5)</b></td><td><font style="font-size: 10pt"><b>Fair Value of Financial Instruments</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">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="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p>

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

<p style="margin: 0pt 0 0pt 45.35pt; font-size: 10pt">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="margin: 0pt 0 0pt 45.35pt; font-size: 10pt">&nbsp;</p>

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

<p style="margin: 0pt 0 0pt 45.35pt; font-size: 10pt">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="margin: 0pt 0 0pt 45.35pt; font-size: 10pt">&nbsp;</p>

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

<p style="margin: 0pt 0 0pt 45.35pt; font-size: 10pt">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="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

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

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt; text-align: left"><u>Level 2</u></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">March 31,<br> 2020</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">March 31,<br> 2019</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">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: White">
    <td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Derivative financial instruments</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">(624</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: 12%; font-size: 10pt; text-align: right">(175</td><td style="width: 1%; font-size: 10pt; text-align: left">)</td></tr>
</table></div>



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

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

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"><font style="color: windowtext">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</font>.</p>

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

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

<!-- Field: Page; Sequence: 10; 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%"><!-- 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">&nbsp;&nbsp;</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" 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: 27pt"><b>(6)</b></td><td><font style="font-size: 10pt"><b>Share-Based Compensation</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The Company issues share-based awards through several plans that are described
in detail in the notes to the consolidated financial statements for the year ended December 31, 2019. 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="color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<tr style="vertical-align: bottom">
    <td style="white-space: nowrap; font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td><td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td></tr>
<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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,</td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Share-based compensation related to:</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">2020</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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; 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">100</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">100</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">60</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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: rgb(204,238,255)">
    <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt">Restricted Stock Unit Awards ("RSUs")</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">377</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">187</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">537</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">294</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; color: Red; font-size: 10pt"></p>

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

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The total income tax benefit recognized in the condensed consolidated
statements of income for share-based compensation arrangements was approximately $348 thousand and $164 thousand for the three-month
periods ended March 31, 2020 and 2019, respectively.</p>

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

<p style="margin: 0pt 27.9pt 0pt 27pt; font-size: 10pt">The following is a summary of stock option activity under all plans for
the three-month period ended <font style="color: windowtext">March 31, 2020</font>:</p>

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

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

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<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 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<br>
</b> (in years)</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<br>
</b> (in thousands)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 40%; font-size: 10pt">Outstanding at December 31, 2019</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">105,614</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">25.34</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">&nbsp;</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">&nbsp;</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">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">-</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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; 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">(19,586</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">$</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: right">21.20</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 at March 31, 2020</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">86,028</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">26.28</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">1,025</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 March 31, 2020</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">65,742</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">23.04</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.00</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">989</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="text-indent: -10pt; padding-left: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Vested and expected to vest at March 31, 2020</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">86,028</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">26.28</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">1,025</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; color: Red; font-size: 10pt; text-align: center"></p>

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

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">During the three-month period ended <font style="color: windowtext">March 31,
2020</font>, the total intrinsic value of all options exercised (i.e., the difference between the market price on the exercise
date and the price paid by the employees to exercise the options) was approximately $530 thousand, and the total amount of consideration
received by the Company from the exercised options was approximately $415 thousand. During the three-month period ended <font style="color: windowtext">March
31, 2019</font>, the total intrinsic value of all options exercised was approximately $274 thousand, and the total amount of consideration
received by the Company from the exercised options was approximately $285 thousand. 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 both the
three-month periods ended March&nbsp;31, 2020 and 2019, <font style="color: windowtext">no shares were </font>surrendered for this
purpose.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">On February 24, 2020<font style="color: black">, the Company&#8217;s Compensation
Committee approved the award of $400 thousand, payable in shares of common stock to the Company&#8217;s Chairman, Chief Executive
Officer, and President under the 2003 </font><font style="color: windowtext">Incentive Plan. Subject to his continued employment
and the terms of his employment agreement, the shares will be issued in December 2020. </font></p>

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

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

<!-- Field: Page; Sequence: 11; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The following table summarizes information about RSU activity during the three-month
period ended March 31, 2020:</p>

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

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

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<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">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 Average<br> Award Date<br> 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, 2019</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">113,866</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.36</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">42,733</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">49.96</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">Shares 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">(28,244</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">27.02</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 at March 31, 2020</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">128,355</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">31.58</td><td style="padding-bottom: 2.5pt; font-size: 10pt; text-align: left">&nbsp;</td></tr>
</table></div>



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

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

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">At the Company&#8217;s discretion, upon vesting 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 and issued to the RSU holder. During the three-month periods ended March 31, 2020 and 2019, 11,195 and 8,132 shares
were surrendered at an average market price of $49.99 and $33.35, respectively.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"><font style="color: windowtext">As of March 31, 2020, the Company had approximately
$4.0 million of unrecognized compensation expense that is expected to be recognized over a period of 4 years</font>.</p>

<p style="margin: 0pt 0; font-size: 10pt">&nbsp;</p></div><p style="margin: 0pt 0; font-size: 10pt"></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: 27pt"><b>(7)</b></td><td><font style="font-size: 10pt"><b>Inventories</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">Inventories are stated at the lower of cost (determined using the first-in,
first-out method) or net realizable value, and consist of the following at the stated dates (in thousands):</p>

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

<p style="color: Red; 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: 95%; margin-left: 36px">
<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">March 31,<br> 2020</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">December 31,<br>
 2019</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">11,471</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">10,540</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,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">2,279</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,976</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,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: White">
    <td style="text-indent: 10pt; 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">20,242</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">18,276</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; color: Red; font-size: 10pt"></p>

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

<p style="margin: 0pt 0 0pt 27.35pt; color: Red; font-size: 10pt"></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: 27pt"><b>(8)</b></td><td><font style="font-size: 10pt"><b>Leases</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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.&nbsp;These are expensed as incurred and recorded as variable lease expense.&nbsp;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.&nbsp;</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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.&nbsp;ROU
assets and operating lease liabilities are&nbsp;recognized at commencement date based on the net present value of fixed lease payments
over the lease term.&nbsp;The Company's lease term&nbsp;includes&nbsp;options to extend or terminate the lease when it is reasonably
certain that we will exercise that option.&nbsp;ROU assets will also be adjusted for any deferred or accrued rent. As the Company's&nbsp;operating
leases do not typically provide an implicit rate,&nbsp;the Company uses&nbsp;its incremental borrowing rate based on the information
available at commencement date in determining the present value of lease payments.&nbsp;Operating fixed lease expense is recognized
on a straight-line basis over the lease term.</p>

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

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

<!-- Field: Page; Sequence: 12; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<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">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td></tr>
<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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,<br> ($'s in thousands)</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">2020</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></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><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: 70%; font-size: 10pt; text-align: left">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">305</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">307</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">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">57</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td style="font-size: 10pt; text-align: left">&nbsp;</td><td style="font-size: 10pt; text-align: right">57</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">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">7</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">6</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">369</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">370</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">&nbsp;</td><td 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">Cash paid for amounts included in measurement of 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">&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; text-align: left; padding-bottom: 2.5pt">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">305</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">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: 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></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><td 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; padding-bottom: 2.5pt">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.45</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">3.37</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><td 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; padding-bottom: 2.5pt">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><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 27pt; color: Red; font-size: 10pt"></p>

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

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The aggregate future lease payments for operating leases as of March 31, 2020 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: 95%; margin-left: 36px">
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 85%; font-size: 10pt; text-align: left">Remainder of 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">874</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,121</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">959</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="text-indent: 10pt; 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">2,990</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">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">(163</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: 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">2,827</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; color: Red; font-size: 10pt"></p>

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

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

<p style="margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"></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: 27pt"><b>(9)</b></td><td><font style="font-size: 10pt"><b>Income Per Share</b></font></td></tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">Basic income per share is based on the weighted average number of shares of
common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive
common stock equivalent shares outstanding during each period.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The weighted average number of shares used to compute basic and diluted net
income per share consisted of the following (in thousands):</p>

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

<p style="color: Red; 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: 95%; margin-left: 36px">
<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">&nbsp;</td>
    <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td></tr>
<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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 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">2020</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></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 70%; font-size: 10pt">Basic weighted average common shares outstanding</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,457</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,402</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 RSUs</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">81</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">64</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">Diluted weighted average common shares outstanding</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,538</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,466</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; color: Red; font-size: 10pt">&nbsp;</p>

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

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

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

<!-- Field: Page; Sequence: 13; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The computation of diluted earnings per share excludes the effect of the potential
exercise of 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 income per share because the effect
would be antidilutive. For both the three-month periods ended <font style="color: windowtext">March&nbsp;31, 2020 and 2019</font>,
the number of stock awards excluded from the computation of diluted earnings per share for this reason was zero.</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"></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: 27pt"><b>(10)</b></td><td><font style="font-size: 10pt"><b>Segment Reporting</b></font></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; text-indent: 0in">The Company consists of a single operating and reportable
segment.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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 both the three-month periods ended March 31, 2020 and
2019. All of the Company&#8217;s assets are located in the United States.</p>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt"><font style="color: windowtext">The Company&#8217;s products are primarily sold
to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Net sales by
market for the three-month periods ended March 31, 2020 and 2019 are as follows (in thousands)</font>:</p>

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

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

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<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="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended March 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="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2020</td><td style="font-size: 10pt; font-weight: bold; font-style: normal; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="7" style="font-size: 10pt; font-weight: bold; font-style: normal; text-align: center; border-bottom: Black 1pt solid">2019
    <font style="font-size: 10pt; font-style: normal; font-weight: 700"><sup>(1)</sup></font></td></tr>
<tr style="vertical-align: bottom">
    <td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Market</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">Net Sales</td><td style="border-bottom: Black 1pt solid; 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">%</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">Net Sales</td><td style="border-bottom: Black 1pt solid; 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">%</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">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 40%; font-size: 10pt">Medical</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">33,688</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">69.8</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: 12%; font-size: 10pt; text-align: right">28,944</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">61.2</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">Automotive</td><td 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,602</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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.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">5,738</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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.1</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">Consumer</td><td 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,439</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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.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">4,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">9.3</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">Aerospace &amp; Defense</td><td 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,711</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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.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">3,532</td><td style="font-size: 10pt; text-align: left">&nbsp;</td><td 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.5</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">Industrial</td><td 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">4.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">2,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">5.3</td><td style="font-size: 10pt; text-align: left">%</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <td style="font-size: 10pt; padding-bottom: 1pt">Electronics</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,920</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="border-bottom: 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.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,204</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td>
    <td style="border-bottom: 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.7</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; padding-bottom: 2.5pt">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">48,277</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: left">&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">100.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">$</td><td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: right">47,327</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: left">&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">100.0</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 27pt; color: Red; font-size: 10pt"></p>

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

<p style="margin: 0pt 0 0pt 27pt; color: Red; 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.5in"></td><td style="width: 0.25in"><font style="font-size: 8pt"><sup>(1)</sup></font></td><td style="padding-right: 5.4pt"><font style="font-size: 8pt">Certain
                                         amounts for the three months ended March 31, 2019 were reclassified between markets to
                                         conform to the current period presentation.</font></td></tr></table>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt; text-align: center; text-indent: -27pt">&nbsp;</p></div><p style="margin: 0pt 0 0pt 27pt; font-size: 10pt; text-align: center; text-indent: -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; text-align: justify">
<td style="width: 0; text-align: right"></td><td style="width: 27pt"><b>(11)</b></td><td style="text-align: justify"><font style="font-size: 10pt"><b>Other Intangible Assets</b></font></td>
</tr></table>

<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 carrying values of the Company&#8217;s definite lived intangible assets
as of March 31, 2020 are as follows (in&nbsp;thousands):</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; color: Red"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<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">Tradename<br>
 &amp; Brand</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">Non-<br> Compete</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">Customer<br> List</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">Total</td></tr>
<tr style="vertical-align: bottom">
    <td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt">Estimated useful life</td><td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td><td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td><td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td>
    <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</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">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="width: 40%; 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: 12%; 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: 12%; 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: 12%; 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: 12%; 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">(80</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">(200</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,443</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,723</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">287</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">262</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,112</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,661</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="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</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: 14; 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%"><!-- 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">&nbsp;&nbsp;</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">Amortization expense related to intangible assets was approximately $314
thousand for both the three-month periods ended March 31, 2020 and 2019. The estimated remaining amortization expense as of March
31, 2020 is as follows (in thousands):</p>

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

<p style="color: Red; font-size: 10pt; text-indent: -0.35pt; margin: 0pt 0 0pt 0.75in"></p>

<div data-td-taggable-table=""><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 95%; margin-left: 36px">
<tr style="vertical-align: bottom; background-color: rgb(204,238,255)">
    <td style="font-size: 10pt">Remainder of:</td><td style="font-size: 10pt">&nbsp;</td>
    <td colspan="3" style="font-size: 10pt">&nbsp;</td></tr>
<tr style="vertical-align: bottom; background-color: White">
    <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">$</td><td style="width: 12%; font-size: 10pt; text-align: right">943</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">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,257</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">1,257</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">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">1,172</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">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">1,164</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; 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">14,868</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: 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">20,661</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 0.75in; color: Red; font-size: 10pt; text-indent: -0.35pt"></p>

<p style="margin: 0pt 0 0pt 0.75in; color: Red; font-size: 10pt; text-indent: -0.35pt"></p>

<p style="margin: 0pt 0 0pt 0.75in; color: Red; font-size: 10pt; text-indent: -0.35pt">&nbsp;</p></div><p style="margin: 0pt 0 0pt 0.75in; color: Red; font-size: 10pt; text-indent: -0.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; text-align: justify">
<td style="width: 0; text-align: right"></td><td style="width: 27pt"><b>(12)</b></td><td style="text-align: justify"><font style="font-size: 10pt"><b>Income Taxes</b></font></td>
</tr></table>

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

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The income tax expense included in the accompanying unaudited condensed consolidated
statements of income principally relates to the Company&#8217;s proportionate share of the pre-tax income of its wholly-owned subsidiaries.
The determination of income tax expense for interim reporting purposes is based upon the estimated effective tax rate for the year,
adjusted for the impact of any discrete items which are accounted for in the period in which they occur. <font style="color: windowtext">The
Company recorded tax expense of approximately 17.8% and 21.9% of income before income tax expense for the three-month periods ended
March 31, 2020 and 2019, respectively. </font></p>

<p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</p></div><p style="margin: 0pt 0 0pt 27.35pt; font-size: 10pt"></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; text-align: justify">
<td style="width: 0; text-align: right"></td><td style="width: 27pt"><b>(13)</b></td><td style="text-align: justify"><font style="font-size: 10pt"><b>Indebtedness</b></font></td>
</tr></table>

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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.&nbsp; 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="margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">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 0.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 March 31,
2020 there were no amounts outstanding under the Amended and Restated Credit Facilities other than <font style="color: windowtext">$0.7</font>
million in standby letters of credit outstanding drawable as a financial guarantee on worker&#8217;s compensation insurance policies.
As of March 31, 2020, the applicable interest rate was approximately 1.99% and the Company was in compliance with all covenants
under the Amended and Restated Credit Agreement.</p>

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

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

<!-- Field: Page; Sequence: 15; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

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

<p style="margin: 0pt 0 0pt 27pt; font-size: 10pt">The Company uses interest-rate-related derivative instruments to
manage its exposure related to changes in interest rates on its variable-rate debt instruments. The Company does not enter into
derivative instruments for any purpose other than cash flow hedging. The Company does not speculate using derivative instruments.
By using derivative financial instruments to hedge exposures to changes in interest rates, the Company exposes itself 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, which creates credit risk for the Company.
When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, the Company is not
exposed to the counterparty&rsquo;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. The market risk associated with interest-rate
contracts is managed by establishing and monitoring parameters that limit the types and degree of market risk that may be undertaken.
The Company assesses interest rate risk by identifying and monitoring changes in interest rate exposures that may adversely impact
expected future cash flows and by evaluating hedging opportunities. The Company&rsquo;s debt obligations expose the Company to
variability in interest payments due to changes in interest rates. The Company believes that it is prudent to limit the variability
of a portion of its interest payments. To meet this objective, in connection with the term loan under 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 agreement was established
to modify the Company&rsquo;s interest rate exposure by converting interest on the term loan from a variable rate to a fixed rate
to hedge against the possibility of rising interest rates during the term of the loan. Because the Company repaid its term loan
in full, the swap agreement no longer serves this purpose and may be canceled by the Company prior to its expiration date. The
notional amount was approximately $13.6 million at March&nbsp;31, 2020. The fair value of the swap as of March 31, 2020 and 2019
was approximately $(624) thousand and $(175) thousand, respectively and is included in other liabilities. Changes in the fair value
of the swap are recorded in other expense and were approximately $300 thousand and $239 thousand during the three-months ended
March 31, 2020 and 2019, respectively.</p>

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

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



<p style="margin: 0pt 0; font-size: 10pt"></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: 27pt"><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: 27pt"><b>(14)</b></td><td><font style="font-size: 10pt"><b>Subsequent Events</b></font></td></tr></table>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white"><FONT STYLE="color: #212529">The
Company&rsquo;s operations expose it to risks associated with the COVID-19 pandemic. Although the COVID-19 pandemic did not materially
impact the Company&rsquo;s first quarter results, it has since more significantly impacted the Company&rsquo;s operations. While
all of the Company&rsquo;s factories are deemed essential, not all of its customers&rsquo; operations are essential and, therefore,
demand for product, especially in the automotive and consumer markets, has been negatively impacted. Partially mitigating this
are increased orders from certain customers in the medical market. The COVID-19 pandemic has also impacted the Company&rsquo;s
cost of manufacturing its goods, including higher labor costs, maintenance costs and manufacturing inefficiencies due to employee
absenteeism and significantly enhanced cleaning and sterilization. With regard to the Company&rsquo;s supply chain, there has thus
far been minimal disruption in the availability of raw materials, as most of the Company&rsquo;s major suppliers have also been
deemed to be essential businesses.</FONT> <FONT STYLE="color: black">However, to mitigate risk, the Company has increased its purchases
of raw materials to establish safety stock. </FONT></P>

<P STYLE="color: #212529; font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white">&nbsp;</P>

<P STYLE="color: #212529; font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white">The Company
has been notified by several customers that they would be extending payment terms. The Company anticipates that these extended
payment terms will be short-term in nature, but they may continue for a longer duration. In the beginning of April, the Company
drew down $5.5 million from its revolving credit facility to maintain cash reserves in the event it experiences a substantial shut
down of operations, further or extended increase in manufacturing costs or significant exposure to its ability to timely collect
its receivables.</P>



<P STYLE="margin: 0pt 0 0pt 27pt; font-size: 10pt; background-color: white"><FONT STYLE="font-size: 10pt; color: #212529"></font></p>

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

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

<!-- Field: Page; Sequence: 16; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

<p style="margin: 0pt 0; font-size: 10pt"><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: 0.75in"><a name="a_008"></a><b>ITEM 2:</b></td><td><b>MANAGEMENT'S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS&nbsp;OF&nbsp;OPERATIONS</b></td></tr></table>

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

<p style="font-size: 10pt; margin: 0pt 0.25in 0pt 0"><b>Forward-looking Statements</b></p>

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

<p style="margin: 0pt 0; font-size: 10pt">Some of the statements contained in this Report are forward-looking
statements within the meaning of Section 27A of the Securities Act of 1933, as amended (&ldquo;Securities Act&rdquo;), and Section
21E of the Securities Exchange Act of 1934, as amended (&ldquo;Exchange Act&rdquo;). 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
potential impact the COVID-19 pandemic may have on the Company&rsquo;s business, financial condition and results of operations,
including with respect to the different markets in which the Company participates, the demand for its products, the well-being
and availability of the Company&rsquo;s employees, the continuing operation of the Company&rsquo;s locations, delayed payments
by the Company&rsquo;s customers and the potential for reduced or canceled orders, the Company&rsquo;s efforts to address the pandemic,
including regarding the safety of its employees, the maintenance of its facilities and the sufficiency of the Company&rsquo;s supply
chain, inventory, liquidity and capital resources, including increased costs in connection with such efforts, the impact of the
pandemic on the businesses of the Company&rsquo;s suppliers and customers, and the overall impact the pandemic may have on the
Company&rsquo;s financial results in 2020; statements about the Company&rsquo;s acquisition strategies and opportunities and the
Company&rsquo;s growth potential and strategies for growth; expectations regarding customer demand; expectations regarding the
Company&rsquo;s liquidity and capital resources, including the sufficiency of its cash reserves and the availability of borrowing
capacity to fund operations and/or potential future acquisitions; anticipated revenues and the timing of such revenues; expectations
about shifting the Company&rsquo;s book of business to higher-margin, longer-run opportunities; anticipated trends and potential
advantages in the different markets in which the Company competes, including the medical, aerospace and defense, automotive, consumer,
electronics, and industrial markets, and the Company&rsquo;s plans to expand in certain of its markets; anticipated advantages
the Company expects to realize from its investments and capital expenditures; anticipated advantages to improvements and alterations
at the Company&rsquo;s existing plants; expectations regarding the Company&rsquo;s manufacturing capacity, operating efficiencies,
and new production equipment; statements about new product offerings and program launches; statements about the Company&rsquo;s
acquisition and integration of Dielectrics and the synergies and other benefits anticipated in connection with the Dielectrics
business; the Company&rsquo;s participation and growth in multiple markets; its business opportunities; 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.</p>

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

<p style="margin: 0pt 0; font-size: 10pt">Investors are cautioned that such forward-looking statements involve risks and uncertainties
that could adversely affect the Company&rsquo;s business and prospects, and otherwise cause actual results to differ materially
from those anticipated by such forward-looking statements, or otherwise, including without limitation: the severity and duration
of the COVID-19 pandemic and its impact on the markets in which the Company participates, including its impact on the Company&rsquo;s
customers, suppliers and employees, as well as the U.S. and worldwide economies; the timing, scope and effect of further governmental,
regulatory, fiscal, monetary and public health responses to the COVID-19 pandemic; risks and uncertainties associated with the
COVID-19 pandemic and its impact on the Company&rsquo;s business, financial condition and results of operations, including risks
relating to decreased, including substantially decreased, demand for the Company&rsquo;s products; risks relating to the potential
closure of any of the Company&rsquo;s facilities or the unavailability of key personnel or other employees; risks that the Company&rsquo;s
inventory, cash reserves, liquidity or capital resources may be insufficient; risks relating to delayed payments by our customers
and the potential for reduced or canceled orders; risks relating to the increased costs associated with the Company&rsquo;s efforts
to respond to the pandemic; risks relating to 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 integration of any such acquisition candidates, the value of those acquisitions to our customers and shareholders, and the
financing of such acquisitions; risks related to our indebtedness and compliance with covenants contained in our financing arrangements,
and whether any available financing may be sufficient to address our needs; risks associated with efforts to shift the Company&rsquo;s
book of business to higher-margin, longer-run opportunities; risks associated with the Company&rsquo;s entry into and growth in
certain markets; risks and uncertainties associated with seeking and implementing manufacturing efficiencies and implementing
new production equipment; risks and uncertainties associated with growth of the Company&rsquo;s business and increases to sales,
earnings and earnings per share; and risks associated with new product and program launches. Accordingly, actual results may differ
materially.</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: 17; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0; font-size: 10pt">In some cases, you can identify forward-looking statements by terms
such as &ldquo;may,&rdquo; &ldquo;will,&rdquo; &ldquo;should,&rdquo; &ldquo;could,&rdquo; &ldquo;would,&rdquo; &ldquo;expects,&rdquo;
&ldquo;plans,&rdquo; &ldquo;anticipates,&rdquo; &ldquo;believes,&rdquo; &ldquo;estimates,&rdquo; &ldquo;projects,&rdquo; &ldquo;predicts,&rdquo;
&ldquo;potential,&rdquo; 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 the forward-looking statements are qualified
in their entirety by reference to the factors discussed above and under &ldquo;Risk Factors&rdquo; set forth in Part I Item 1A
of the Company&rsquo;s Annual Report on Form 10-K for the year ended December 31, 2019, as well as the risks and uncertainties
discussed elsewhere in this Report, including without limitation any risks and uncertainties included elsewhere in this &ldquo;Management's
Discussion and Analysis of Financial Condition and Results Of Operations&rdquo; portion of this Report, or under &ldquo;Risk Factors&rdquo;
in Part II Item 1A of 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="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

<p style="margin: 0pt 0; font-size: 10pt">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="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

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

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

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

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

<p style="margin: 0pt 0; font-size: 10pt">Sales for the Company for the three-month period ended March 31, 2020 grew 2.0% to $48.3
million from $47.3 million in the same period last year due to strong growth in sales to the customers in the medical market.
Streamlined manufacturing operations and a better mix of business enabled us to improve gross margins to 26.6% for the three-month
period ended March 31, 2020, from 26.4% in the same period last year. Operating income for the three-month period ended March
31, 2020 decreased to $5.1 million from $5.3 million in the same period last year due primarily to higher selling, general and
administrative expense, while net income for the three-month period ended March 31, 2020 increased to $3.9 million from $3.7 million
in the same period last year.</P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Our current strategy includes further organic growth and growth
through strategic acquisitions<FONT STYLE="color: black">.</FONT></p>

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

<p style="color: #212529; font-size: 10pt; margin: 0pt 0; background-color: white"><b><i>Recent Developments</i></b></p>

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

<p style="color: #212529; font-size: 10pt; text-align: justify; margin: 0pt 0; background-color: white"><font style="color: Black"><b><i>COVID-19</i></b></font></p>

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: justify; background-color: white">Our operations expose us to risks associated
with the COVID-19 pandemic. Although the COVID-19 pandemic did not materially impact our first quarter results, it has since more
significantly impacted our operations. While all of our factories are deemed essential, not all of our customers&rsquo; operations
are essential and, therefore, demand for product has been negatively impacted, especially in the automotive and consumer markets,
where the impact has been substantial. Partially mitigating this are increased orders from certain customers in the medical market.
The COVID-19 pandemic has also impacted the cost of manufacturing our goods, including higher labor costs, maintenance costs and
manufacturing inefficiencies due to employee absenteeism and significantly enhanced cleaning and sterilization. With regard to
our supply chain, there has thus far been minimal disruption in the availability of raw materials, as most of our major suppliers
have also been deemed to be essential businesses. However, to mitigate risk, we have increased purchases of raw materials to establish
safety stock.</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: justify; background-color: white">&nbsp;</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: justify; background-color: white">We have been notified by several customers that they would
be extending payment terms. We anticipate that these extended payment terms will be short-term in nature, but they may continue
for a longer duration. In the beginning of April, we drew down $5.5 million from our revolving credit facility to maintain cash
reserves in the event we experience a substantial shut down of operations, further or extended increase in manufacturing costs
or significant exposure to our ability to timely collect receivables.</p>

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: justify; background-color: white"><font style="color: Black"></font></p>

<!-- Field: Page; Sequence: 18; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

<p style="margin: 0pt 0; font-size: 10pt; text-align: justify; background-color: white"><FONT STYLE="color: Black">&nbsp;</FONT></P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: justify; background-color: white"><FONT STYLE="color: Black"></FONT>COVID-19
has spread across the country to areas in which our products are designed, manufactured, distributed or sold. Authorities in states
in which we do business have implemented numerous measures to stall the spread of COVID-19, including travel bans and restrictions,
quarantines, curfews, shelter in place orders, and business shutdowns. These measures have impacted and will likely further impact
us, our customers, consumers, employees, suppliers and other third parties&nbsp;with whom we do business. There is considerable
uncertainty regarding how these and any future measures in response to the pandemic will impact our business, including whether
and to what extent they will result in further changes in demand for our products, further increases in operating costs (whether
as a result of changes to our supply chain or increases in employee or manufacturing costs). Any continued reduced demand for
our products due, for example, to reduced need for packaging for consumer and electronic goods, reduced need for components for
medical devices, such as those used in elective procedures, reduced need for automobile components, etc., as well as continued
economic uncertainty, could adversely and materially affect our business, financial condition and results of operations, as well
as those of our customers, resulting in customers&rsquo; inability to pay for our products and reduced or canceled orders of our
products. Such adverse changes in our customers&rsquo; financial condition may also result in our recording impairment charges
for our inability to recover or collect any accounts receivable or owned or leased assets.</P>

<P STYLE="color: #212529; font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; background-color: white">&nbsp;</P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; background-color: white">The COVID-19
pandemic and associated economic disruptions have had, and we believe will continue to have, negative effects on our operating
results, cash flows and financial condition. While we began to experience these effects towards the end of March, we expect the
effects on our financial results in the second and third fiscal quarters will be more significant. Our financial results may be
materially adversely impacted by COVID-19 in future periods, as well. <FONT STYLE="color: #212529">While we have developed and
implemented and continue to develop and implement health and safety protocols, business continuity plans and crisis management
protocols in an effort to try to mitigate the negative impact of COVID-19 on our employees and our business, </FONT>we believe
<FONT STYLE="color: #212529">the extent of the impact of the pandemic on our business and financial results will depend on </FONT>future
developments that are highly uncertain and cannot be predicted, and which may <FONT STYLE="color: #212529">vary by market, including
the duration and scope of the pandemic, </FONT>its severity, <FONT STYLE="color: #212529">economic conditions during and after
the pandemic, governmental actions that have or may be taken in response to the pandemic, changes in customer behavior in response
to the pandemic, </FONT>and how quickly and to what extent more predictable economic and operating conditions can resume. As a
result, we anticipate that COVID-19 driven demand disruptions and related events will negatively affect our financial results
in 2020<FONT STYLE="color: #212529">.</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0; text-align: justify; background-color: white"><FONT STYLE="color: #212529">&nbsp;</FONT></p>

<p style="color: #212529; font-size: 10pt; text-align: justify; margin: 0pt 0; background-color: white"><font style="color: Black"><b><i>Coronavirus
Aid, Relief, and Economic Security Act</i></b></font></p>

<p style="color: #212529; font-size: 10pt; text-align: justify; margin: 0pt 0; background-color: white"><font style="color: Black">&nbsp;</font></p>

<p style="color: #212529; font-size: 10pt; margin: 0pt 0"><font style="color: Black">The CARES Act&nbsp;was enacted on March 27,
2020 in the United States. The CARES Act and related notices include several significant provisions, including delaying certain
payroll tax payments and estimated income tax payments that we expect to defer to future periods. We do not currently expect the
CARES Act to have a material impact on our financial results, including on our annual estimated effective tax rate, or on our
liquidity. We will continue to monitor and assess the impact the CARES Act may have on our business and financial results.</font></p>

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

<p style="margin: 0pt 0; font-size: 10pt"><font style="color: Black"><b>Results of Operations</b></font></p>

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

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

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

<p style="margin: 0pt 0; font-size: 10pt">Sales for the three-month period ended March 31, 2020 increased 2.0% to $48.3 million
from $47.3 million in the same period in 2019. The increase in sales for the three-month period ended March 31, 2020 was primarily
due to increased sales to the medical market of 16.4%, partially offset by decreases in sales to customers in the aerospace and
defense, automotive and, collectively, consumer, industrial and electronics markets of 23.2%, 19.8% and 20.2%, respectively. The
increased sales to the medical market was primarily due to continued growth in programs at Dielectrics. The decreased sales to
customers in the aerospace and defense market was primarily due to the timing of orders pursuant to government contracts. The
decline in sales to the automotive market was due, in part, to our customers&rsquo; forecasted decreased demand due to industry
shutdowns associated with the COVID19 pandemic. The decline in sales to all other markets was primarily due to reduced demand
for molded fiber protective packaging.</p>

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

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

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

<p style="margin: 0pt 0; font-size: 10pt">Gross profit as a percentage of sales (&ldquo;gross margins&rdquo;) increased to 26.6%
for the three-month period ended March 31, 2020 from 26.4% in the same period in 2019. As a percentage of sales, material and
labor costs collectively decreased 0.5%, while overhead increased 0.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 increase in overhead as a percentage of sales was primarily due to increased
indirect labor to support anticipated long-term growth. We anticipate higher plant maintenance and supply expenses associated
with keeping its manufacturing plants clean in light of the COVID19 pandemic.</p>

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

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

<!-- Field: Page; Sequence: 19; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

<p style="margin: 0pt 0; font-size: 10pt"><FONT STYLE="color: Black">&nbsp;</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">Selling, general and administrative expenses (&ldquo;SG&amp;A&rdquo;)
for the three-month period ended March 31, 2020 increased 7.0% to $7.8 million from $7.2 million in the same period in 2019. As
a percentage of sales, SG&amp;A for the three-month period ended March 31, 2020 increased to 16.1% from 15.3% in the same period
in 2019. The increase in SG&amp;A was <FONT STYLE="color: windowtext">largely attributable to an increase in stock-based equity
awards of approximately $250 thousand and an increase in bad debt expense of approximately $130 thousand from the same period
in 2019 due, in part, to the anticipated impact of the COVID19 pandemic on our customers.</FONT></P>

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><FONT STYLE="color: windowtext">&nbsp;</FONT></p>

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

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">We had net interest expense of approximately $16 thousand and
$231 thousand for the three-month periods ended March 31, 2020 and 2019, respectively. The decrease in net interest expense is
due to a reduction in the outstanding balance of debt.</P>

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

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

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">We had other expense of approximately $327 thousand and $239
thousand for the three-month periods ended March 31, 2020 and 2019, respectively. This increase is due to an increase in the fair
value of the swap liability which was caused by interest rate reductions enacted during the first quarter as well as lower anticipated
future rate increases. Should we choose to keep the swap for the full five-year term, the cumulative net impact to the income statement
due to changes in fair value will be zero.</P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0.25in 0pt 0"><I>Income Taxes</I></P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">We recorded tax expense of approximately 17.8% and 21.9% of
income before income tax expense for the three-month periods ended March 31, 2020 and 2019, respectively. The decrease in the effective
tax rate was primarily due to higher anticipated research and development tax credits than those anticipated at this time last
year.</P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0"><B>Liquidity and Capital Resources</B></P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">We generally fund our operating expenses, capital requirements,
and growth plan through internally generated cash and bank credit facilities.</P>

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

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

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

<p style="margin: 0pt 0; font-size: 10pt"><font style="color: windowtext">Net cash provided by operations for the three-month period
ended March 31, 2020 was approximately $4.7 million and was primarily a result of net income generated of approximately $3.9 million,
depreciation and amortization of approximately $2.1 million, share-based compensation of approximately $0.5 million, an increase
in deferred taxes of approximately $0.4 million, a decrease in refundable income taxes of approximately $0.3 million, a decrease
in other assets of approximately $0.2 million, a net increase in accounts payable and accrued expenses of approximately $0.6 million,
due to the timing of vendor payments and in the ordinary course of business, and an increase in other liabilities of approximately
$0.1 million. These cash inflows and adjustments to income were partially offset by an increase in accounts receivable of approximately
$0.8 million primarily due to increased sales in the last two months of the first quarter of 2020 over the same period of the fourth
quarter of 2019, an increase in inventory of approximately $2.0 million due to restocking to historical levels and for expected
safety stock needs, an increase in prepaid expenses of approximately $0.5 million, and a decrease in deferred revenue of approximately
$0.1 million</font><font style="color: #7F7F7F">.</font></p>

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

<p style="margin: 0pt 0; font-size: 10pt"><font style="font-size: 10pt; color: windowtext">Net cash used in investing activities
during the three-month period ended March 31, 2020 was approximately 1.0</font>&nbsp;<font style="font-size: 10pt; color: windowtext">million
and was primarily the result of additions of manufacturing machinery and equipment across the Company.</font></p>

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

<p style="margin: 0pt 0; font-size: 10pt">Net cash used in financing activities was approximately $0.1 million during the three-month
period ended March&nbsp;31, 2020, resulting from payments for statutory withholding for stock options exercised and restricted
stock units vested of approximately $0.5 million, partially offset by net proceeds received upon stock options exercises of approximately
$0.4 million.</p>

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

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

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

<p style="margin: 0pt 0; font-size: 10pt">On February 1, 2018, the Company, as the borrower, entered into
an unsecured $70 million Amended and Restated Credit Agreement (the &ldquo;Amended and Restated Credit Agreement&rdquo;) with certain
of our subsidiaries (the &ldquo;Subsidiary Guarantors&rdquo;) 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 our prior credit agreement.</p>

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

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

<!-- Field: Page; Sequence: 20; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0; font-size: 10pt">The credit facilities under the Amended and Restated Credit Agreement (the &ldquo;Amended
and Restated Credit Facilities&rdquo;) consist of a $20 million unsecured term loan to the Company and an unsecured revolving
credit facility, under which we 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. Our obligations under the Amended and Restated Credit Agreement are guaranteed by the Subsidiary Guarantors.</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">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&rsquo;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, we are 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 March 31,
2020 there were no amounts outstanding under the Amended and Restated Credit Facilities other than <FONT STYLE="color: windowtext">$0.7</FONT>
million in standby letters of credit outstanding drawable as a financial guarantee on worker&rsquo;s compensation insurance policies.
As of March 31, 2020, the applicable interest rate was approximately 1.99%. The Company was in compliance with all covenants under
the Amended and Restated Credit Agreement.</P>



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

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

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

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

<p style="margin: 0pt 0; font-size: 10pt">We use interest-rate-related derivative instruments to manage its exposure related to
changes in interest rates on our variable-rate debt instruments. We do not enter into derivative instruments for any purpose other
than cash flow hedging. We do not speculate using derivative instruments. By using derivative financial instruments to hedge exposures
to changes in interest rates, we expose ourselves 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, which creates credit risk for us. When the fair value of a derivative contract is negative, the Company owes
the counterparty and, therefore, we are not exposed to the counterparty&rsquo;s credit risk. We minimize 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. The market risk associated with interest-rate contracts is managed by establishing and monitoring parameters that limit
the types and degree of market risk that may be undertaken. We assess interest rate risk by identifying and monitoring changes
in interest rate exposures that may adversely impact expected future cash flows and by evaluating hedging opportunities. Our debt
obligations expose us to variability in interest payments due to changes in interest rates. We believe that it is prudent to limit
the variability of a portion of our interest payments. To meet this objective, in connection with the term loan under the Amended
and Restated Credit Agreement, we entered into a $20 million, 5-year interest rate swap agreement under which we receive three-month
LIBOR plus the applicable margin and pay a 2.7% fixed rate plus the applicable margin. The swap agreement was established to
modify our interest rate exposure by converting interest on the term loan from a variable rate to a fixed rate to hedge against
the possibility of rising interest rates during the term of the loan. Because the term loan was repaid in full, the swap agreement
no longer serves this purpose and may be canceled by us prior to its expiration date if deemed advantageous. The notional amount
was approximately $13.6 million at March&nbsp;31, 2020. The fair value of the swap as of March 31, 2020 and 2019 was approximately
$(624) thousand and $(175) thousand, respectively and is included in other liabilities. Changes in the fair value of the swap
are recorded in other expense and were approximately $300 thousand and $239 thousand during the three-months ended March 31, 2020
and 2019, respectively.</p>

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

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

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

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">We require cash to pay our operating expenses, purchase
capital equipment, and to service our contractual obligations. Our principal sources of funds are cash from operations and
our $50 million revolving credit facility. We generated cash of approximately $4.7 million from operations during the three
months ended March 31, 2020; however we&nbsp;cannot guarantee that our operations will generate cash in future periods. As
indicated above, we have been notified by several customers that they intend to extend payment terms due to COVID-19 and,
therefore, we anticipate short-term lower operating cash and higher working capital needs. On April 1, 2020 we drew down $5.5
million from our revolving credit facility. Our longer-term liquidity is contingent upon future operating performance and
further draws on our revolving credit facility are possible.</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: 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

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

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

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

<p style="margin: 0pt 0; font-size: 10pt">On June 16, 2015, we announced that our Board of Directors authorized the repurchase
of up to $10.0&nbsp;million of our outstanding common stock. Under the program, we are 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 we have no obligation to repurchase
any amount of its common stock under the program. We did not repurchase any shares of our common stock under this program in the
first three months of 2020. Through March 31, 2020, we repurchased a total of 29,559 shares of our common stock under this program
at a cost of approximately $587 thousand. At March&nbsp;31, 2020, approximately $9.4 million was available for future repurchases
of our common stock under this authorization.</P>



<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.25in 0pt 0"><b>Commitments and Contractual Obligations </b></p>

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

<p style="font-size: 10pt; margin: 0pt 0.25in 0pt 0">There have been no material changes outside the ordinary course of business
to our contractual obligations and commitments, as disclosed in our Annual Report on Form 10-K for the year ended December 31,
2019.</p>

<p style="font-size: 10pt; margin: 0pt 0"><b>&nbsp;</b></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, our off-balance-sheet arrangements include standby
letters of credit which are included in our revolving credit facility. As of March 31, 2020, there was approximately $0.7 million
in standby letters of credit drawable as a financial guarantee on worker&rsquo;s compensation insurance policies.</p>

<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" 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"><a name="a_009"></a><b>ITEM 4:</b></td><td><b>CONTROLS AND PROCEDURES</b></td></tr></table>

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

<p style="font-size: 10pt; margin: 0pt 0">As of the end of the period covered by this report (the &#8220;Evaluation Date&#8221;),
the Company&#8217;s management, under the supervision and with the participation of the Company&#8217;s Chief Executive Officer
and Chief Financial Officer, performed an evaluation of the effectiveness of the design and operation of the Company&#8217;s &#8220;disclosure
controls and procedures&#8221; (as defined in SEC Rule 13a-15(e) or 15d-15(e)). 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
were effective to ensure that information required to be disclosed by the Company in the reports that it files or submits under
the Securities Exchange Act of 1934, as amended, 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)&nbsp;accumulated and communicated to the Company&#8217;s
management, including the 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">An evaluation was also performed under the supervision and with the participation of
our management, including the Company&#8217;s Chief Executive Officer and Chief Financial Officer, of any change in our internal
control over financial reporting that occurred during our last fiscal quarter that has materially affected, or is reasonably likely
to materially affect, the Company&#8217;s internal control over financial reporting. That evaluation did not identify any change
in the Company&#8217;s internal control over financial reporting that occurred during our latest 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="margin: 0pt 0; font-size: 10pt">&nbsp;</p>

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

<!-- Field: Page; Sequence: 22; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

<table cellpadding="0" cellspacing="0" style="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><tr style="vertical-align: top; text-align: justify">
<td style="width: 0; text-align: right"></td><td style="width: 63pt"><a name="a_010"></a><b>PART II:</b></td><td style="text-align: justify"><b>OTHER INFORMATION</b></td>
</tr></table>

<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"><a name="a_011"></a><b>ITEM 1A:</b></td><td><b>RISK FACTORS</b></td></tr></table>

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

<p style="margin: 0pt 0; font-size: 10pt">There have been no material changes from the risk factors previously disclosed in Part
1 - Item 1A of the Company&#8217;s Annual Report on Form 10-K for the fiscal year ended December 31, 2019, other than as described
below.</p>

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

<p style="margin: 0pt 0; font-size: 10pt"><b>Our business and operations have been adversely affected, and our business, financial
condition and results of operations could in the future be materially adversely impacted by the COVID-19 pandemic and associated
economic disruptions.</b></p>

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

<p style="margin: 0pt 0; font-size: 10pt">The pandemic caused by the spread of the novel strain of coronavirus disease 2019 (&quot;COVID-19&quot;)
has created significant volatility, uncertainty and economic disruption in the markets in which we participate, and our operations
expose us to risks associated with the COVID-19 pandemic. Although the COVID-19 pandemic did not materially impact our first quarter
results, since the end of the first quarter it has more significantly impacted our operations. Adverse impacts relating to the
COVID-19 pandemic that we have already experienced include, among others: decreased demand for certain of our products in the
medical market, such as orders for products related to elective surgeries, and a dramatic decrease in demand for products that
service our other markets, such as automotive and consumer, as many of our customers&rsquo; businesses are currently shut down;
increased labor, supply and maintenance costs, as well as manufacturing inefficiencies, as a result of employee attendance issues
and enhanced cleaning and other efforts to safeguard our employees and facilities; increased carrying costs associated with the
accelerated purchasing of raw materials, to help secure adequate supplies; and extended payment terms imposed by customers. Although
we have not yet experienced significant manufacturing or supply chain difficulties as a result of COVID-19, we may in the future.
A reduction or interruption in any of our manufacturing processes, or the closure of any of our facilities, could have a material
adverse effect on our business. Our insurance coverage may not adequately compensate us for losses incurred as a direct or indirect
result of the COVID-19 pandemic.</P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">COVID-19 has spread across the country to areas in which our
products are designed, manufactured, distributed or sold. Authorities in states in which we do business have implemented numerous
measures to stall the spread of COVID-19, including travel bans and restrictions, quarantines, curfews, shelter in place orders,
and business shutdowns. As discussed above, these measures have impacted and will likely further impact us, our customers, consumers,
employees, suppliers and other third parties with whom we do business. There is considerable uncertainty regarding how these and
any future measures in response to the pandemic will impact our business, including whether and to what extent they will result
in further changes in demand for our products or further increases in operating costs (whether as a result of changes to our supply
chain or increases in employee or manufacturing costs). Any continued reduced demand for our products due, for example, to reduced
need for packaging for consumer and electronic goods, reduced need for components for medical devices, such as those used in elective
procedures, reduced need for automobile components, etc., as well as continued economic uncertainty, could adversely and materially
affect our business, financial condition and results of operations, as well as those of our customers, resulting in customers&rsquo;
inability to pay for our products and reduced or canceled orders of our products. Such adverse changes in our customers&rsquo;
financial condition may also result in our recording impairment charges for our inability to recover or collect any accounts receivable
or owned or leased assets.</P>

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

<p style="margin: 0pt 0; font-size: 10pt">In the beginning of April, we drew down $5.5 million from our revolving credit facility
to maintain sufficient cash reserves in the event we experience a substantial shut down of operations, further or extended increase
in manufacturing costs or significant exposure to our ability to timely collect our receivables. The terms of our Amended and
Restated Credit Facilities contain covenants that restrict our ability to engage in certain transactions and, if not met, may
impair our ability to respond to changing business and economic conditions. Our Amended and Restated Credit Facilities also require
us to satisfy certain financial covenants. Should our future business and operations be significantly impaired by the continuing
COVID-19 pandemic and associated economic disruptions or otherwise, we cannot assure that we will remain in compliance with our
current financial covenants. In such event, the factors that adversely affect our business may also similarly adversely affect
the capital markets, and we cannot assure that we would be able to negotiate alternative covenants or alternative financing on
favorable terms, if at all. Our failure to comply with the covenants contained in our Amended and Restated Credit Facilities,
including financial covenants, could result in an event of default, which could materially and adversely affect our results of
operations and financial condition.</P>

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

<P STYLE="font: 10pt Times New Roman, Times, Serif; margin: 0pt 0">The COVID-19 pandemic and associated economic disruptions have
had, and we believe will continue to have, negative effects on our operating results, cash flows and financial condition. While
we began to experience these effects towards the end of March, we expect the effects on our financial results in the second and
third fiscal quarters will be more significant. Our financial results may be materially adversely impacted by COVID-19 in future
periods, as well. We believe the extent of the impact of the pandemic on our business and financial results will depend on future
developments that are highly uncertain and cannot be predicted, and which may vary by market, including the duration and scope
of the pandemic, its severity, economic conditions during and after the pandemic, governmental actions that have or may be taken
in response to the pandemic, changes in customer behavior in response to the pandemic, and how quickly and to what extent more
predictable economic and operating conditions can resume. As a result, the Company anticipates that COVID-19 driven demand disruptions
and related events will negatively affect the Company's financial results in 2020.</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: 23; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

<p style="margin: 0pt 0; font-size: 10pt">We refer you to &#8220;Management&#8217;s Discussion and Analysis of Financial Position
and Results of Operations&#8221; for additional discussion of the potential impact of the COVID-19 pandemic and associated economic
disruptions.</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"></td><td style="width: 63pt"><a name="a_012"></a><b>ITEM 2:</b></td><td><b>UNREGISTERED SALES OF EQUITY SECURITIES AND USE OF PROCEEDS</b></td></tr></table>

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

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

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

<p style="margin: 0pt 0; font-size: 10pt">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. The Company did not repurchase
any shares of its common stock under this program in the first three months of 2020. Through March 31, 2020, the Company had repurchased
a total of 29,559 shares of its common stock under this program at a cost of approximately $587 thousand. At March 31, 2020, approximately
$9.4 million was available for future repurchases of the Company'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">&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"><a name="a_013"></a><b>ITEM 6:</b></td><td><b>EXHIBITS</b></td></tr></table>

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

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 12pt">
<tr>
    <td style="text-indent: 40pt; width: 17%"><font style="font-size: 10pt"><u>Exhibit No.</u></font></td>
    <td style="width: 83%"><font style="font-size: 10pt"><u>Description</u></font></td></tr>
<tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><a href="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_101.htm" style="-sec-extract: exhibit"><font style="font-size: 10pt">10.1</font></a></td>
    <td><a href="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_101.htm" style="-sec-extract: exhibit"><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 style="text-align: center"><a href="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_102.htm" style="-sec-extract: exhibit"><font style="font-size: 10pt">10.2</font></a></td>
    <td><a href="http://www.sec.gov/Archives/edgar/data/914156/000117184320001382/exh_102.htm" style="-sec-extract: exhibit"><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 style="text-align: center"><a href="exh_311.htm"><font style="font-size: 10pt">31.1</font></a></td>
    <td><a href="exh_311.htm"><font style="font-size: 10pt">Rule&nbsp;13a-14(a)/15d-14(a)&nbsp;Certification of the Chief Executive Officer.*</font></a></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><a href="exh_312.htm"><font style="font-size: 10pt">31.2</font></a></td>
    <td><a href="exh_312.htm"><font style="font-size: 10pt">Rule&nbsp;13a-14(a)/15d-14(a)&nbsp;Certification of the Chief Financial Officer.*</font></a></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><a href="exh_321.htm"><font style="font-size: 10pt">32.1</font></a></td>
    <td><a href="exh_321.htm"><font style="font-size: 10pt">Certifications pursuant to 18 U.S.C., Section&nbsp;1350, as adopted pursuant to Section&nbsp;906 of the Sarbanes-Oxley Act of 2002.**</font></a></td></tr>
<tr style="vertical-align: top">
    <td style="text-align: center"><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 style="text-align: center"><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 style="text-align: center"><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 style="text-align: center"><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 style="text-align: center"><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 style="text-align: center"><font style="font-size: 10pt">101.PRE</font></td>
    <td><font style="font-size: 10pt">XBRL Taxonomy Presentation Linkbase Document.*</font></td></tr>
</table>
<p style="margin: 0pt 0 0pt 0.25in; 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: 18pt"></td><td style="width: 27.35pt">*</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: 18pt"></td><td style="width: 27pt">**</td><td>Furnished herewith.</td></tr></table>

<p style="margin: 0pt 0 0pt 0.5in; font-size: 10pt; text-indent: -0.25in"># Indicates management contract or compensatory plan
or arrangement.</p>

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

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

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

<!-- Field: Page; Sequence: 24; 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%"><!-- 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">&nbsp;&nbsp;</p></DIV>
    <!-- Field: /Page -->

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

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

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

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

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

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

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

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

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

<table cellspacing="0" cellpadding="0" style="width: 100%; border-collapse: collapse; font-size: 12pt">
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap; text-indent: 100pt; width: 64%"><font style="font-size: 10pt">Date: May 8, 2020</font></td>
    <td style="white-space: nowrap; width: 5%"><font style="font-size: 10pt">By:&nbsp;&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; white-space: nowrap; width: 31%"><font style="font-size: 10pt">/s/ R. Jeffrey Bailly</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">R. Jeffrey Bailly</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">Chairman, Chief Executive Officer, <br>
    President, and Director<br>
    (Principal Executive Officer)</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap; text-indent: 100pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap; text-indent: 100pt"><font style="font-size: 10pt">Date: May 8, 2020</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">By:&nbsp;&nbsp;</font></td>
    <td style="border-bottom: Black 1pt solid; white-space: nowrap"><font style="font-size: 10pt">/s/ Ronald J. Lataille</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap; text-indent: 100pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">Ronald J. Lataille<br>
 Chief Financial Officer<br>
 (Principal Financial Officer)</font></td></tr>
<tr style="vertical-align: top; text-align: left">
    <td style="white-space: nowrap; text-indent: 100pt"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td>
    <td style="white-space: nowrap"><font style="font-size: 10pt">&nbsp;</font></td></tr>
</table>

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

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

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

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

<p style="text-align: center; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"></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">&nbsp;</p>

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

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

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

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

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

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

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

<p style="margin: 0pt 0; font-size: 10pt; text-align: center"></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 -->


</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>exh_311.htm
<DESCRIPTION>EXHIBIT 31.1
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="text-align: right; margin: 0pt 0; font-size: 10pt">EXHIBIT 31.1</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><U>Certification Pursuant to Section 302 of the Sarbanes-Oxley
Act of 2002</U></B></P>

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

<P STYLE="margin: 0pt 0; font-size: 10pt">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="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0.25in">1.</TD><TD>I have reviewed this quarterly report on Form 10-Q of UFP Technologies, Inc.;</TD></TR>                                                                                                                                                      <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">2.</TD><TD>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>                                                       <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">3.</TD><TD>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>                                   <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">4.</TD><TD>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>                                                                                     <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: 31.5pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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>                                                                                                                       <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: 31.5pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>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>                                                                                                                 <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: 31.5pt"></TD><TD STYLE="width: 13.5pt">c.</TD><TD>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>                              <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: 31.5pt"></TD><TD STYLE="width: 13.5pt">d.</TD><TD>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>                        <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">5.</TD><TD>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>                                                           <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: 31.5pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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>                          <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: 31.5pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>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="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>

<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="white-space: nowrap; width: 33%">Date: May 8, 2020</TD>
    <TD STYLE="white-space: nowrap; width: 34%">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid; white-space: nowrap; width: 33%">/s/ R. Jeffrey Bailly</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">R. Jeffrey Bailly</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Chairman, Chief Executive Officer, President and Director</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">(Principal Executive 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-31.2
<SEQUENCE>3
<FILENAME>exh_312.htm
<DESCRIPTION>EXHIBIT 31.2
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="margin: 0pt 0.9pt 0pt 0; font-size: 10pt; text-align: right">EXHIBIT 31.2</P>

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

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: center"><B><U>Certification Pursuant to Section 302 of the Sarbanes-Oxley
Act of 2002</U></B></P>

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

<P STYLE="margin: 0pt 0; font-size: 10pt">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="width: 100%; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt"><TR STYLE="vertical-align: top">
<TD STYLE="width: 0.25in">1.</TD><TD>I have reviewed this quarterly report on Form 10-Q of UFP Technologies, Inc.;</TD></TR>                                                                                                                                                      <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">2.</TD><TD>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>                                                       <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">3.</TD><TD>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>                                   <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">4.</TD><TD>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>                                                                                     <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: 36pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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>                                                                                                                       <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: 36pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>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>                                                                                                                 <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: 36pt"></TD><TD STYLE="width: 13.5pt">c.</TD><TD>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>                              <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: 36pt"></TD><TD STYLE="width: 13.5pt">d.</TD><TD>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>                        <TR STYLE="vertical-align: top">
<TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>

<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">5.</TD><TD>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>                                                           <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: 36pt"></TD><TD STYLE="width: 13.5pt">a.</TD><TD>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>                          <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: 36pt"></TD><TD STYLE="width: 13.5pt">b.</TD><TD>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="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>

<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="white-space: nowrap; width: 33%">Date: May 8, 2020</TD>
    <TD STYLE="white-space: nowrap; width: 34%">&nbsp;</TD>
    <TD STYLE="white-space: nowrap; border-bottom: Black 1pt solid; width: 33%">/s/ Ronald J. Lataille</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Ronald J. Lataille</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Chief Financial Officer</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">(Principal Financial Officer)</TD></TR>
</TABLE>

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

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

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

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 3in"></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-32.1
<SEQUENCE>4
<FILENAME>exh_321.htm
<DESCRIPTION>EXHIBIT 32.1
<TEXT>
<HTML>
<HEAD>
     <TITLE></TITLE>
</HEAD>
<BODY STYLE="font: 10pt Times New Roman, Times, Serif">

<P STYLE="margin: 0"></P>

<P STYLE="margin: 0pt 0.9pt 0pt 0.75in; font-size: 10pt; text-align: right">EXHIBIT 32.1</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>Certification</B></P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: center"><B>Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</B></P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-align: center"><B>(Subsections (a) and (b) of Section 1350, Chapter 63 of Title
18, United States Code)</B></P>

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

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 0.5in">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 that, to the best of such officers&rsquo; knowledge and belief,
that:</P>

<P STYLE="margin: 0pt 0; font-size: 10pt; text-indent: 0.5in">&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: 22.5pt"><FONT STYLE="color: black">(1)</FONT></TD><TD><FONT STYLE="color: black">The Quarterly Report on Form 10-Q for the quarter ended March 31, 2020, (the &ldquo;Form 10-Q&rdquo;)
of the Company </FONT><FONT STYLE="color: windowtext">fully complies with the requirements of Section 13(a) or 15(d) of the Securities
Exchange Act of 1934; and </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"></TD><TD STYLE="width: 22.5pt">(2)</TD><TD>The information contained in the Form 10-Q fairly presents, in all materials respects, the financial condition and results
of operations of the Company.</TD></TR></TABLE>

<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>

<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="white-space: nowrap; width: 33%">Date: May 8, 2020</TD>
    <TD STYLE="white-space: nowrap; width: 34%">&nbsp;</TD>
    <TD STYLE="white-space: nowrap; border-bottom: Black 1pt solid; width: 33%">/s/ R. Jeffrey Bailly</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">R. Jeffrey Bailly</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Chairman, Chief Executive Officer, President, and Director</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">(Principal Executive Officer)</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">Date: May 8, 2020</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="border-bottom: Black 1pt solid; white-space: nowrap">/s/ Ronald J. Lataille</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Ronald J. Lataille</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">Chief Financial Officer</TD></TR>
<TR STYLE="vertical-align: top; text-align: left">
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">&nbsp;</TD>
    <TD STYLE="white-space: nowrap">(Principal Financial Officer)</TD></TR>
</TABLE>

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

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

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

<P STYLE="margin: 0pt 0 0pt 3in; 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">A signed original of these written statements required by Section 906 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="margin: 0pt 0; font-size: 10pt">&nbsp;</P>

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



<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0">&nbsp;</P>

<P STYLE="margin: 0"></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>5
<FILENAME>ufpt-20200331.xml
<DESCRIPTION>XBRL INSTANCE FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:49PM UTC 2020-05-07--><xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns="http://www.xbrl.org/2003/instance" xmlns:country="http://xbrl.sec.gov/country/2020-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2020-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2020-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/2020-01-31" xmlns:srt="http://fasb.org/srt/2020-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:thunderdome="http://www.RDGFilings.com" xmlns:ufpt="http://www.ufpt.com/20200331" xmlns:us-gaap="http://fasb.org/us-gaap/2020-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-20200331.xsd" xlink:type="simple"/>
  <dei:AmendmentFlag contextRef="d_2020-01-01_2020-03-31" id="c-32">false</dei:AmendmentFlag>
  <dei:CurrentFiscalYearEndDate contextRef="d_2020-01-01_2020-03-31" id="c-20">--12-31</dei:CurrentFiscalYearEndDate>
  <dei:DocumentFiscalPeriodFocus contextRef="d_2020-01-01_2020-03-31" id="c-31">Q1</dei:DocumentFiscalPeriodFocus>
  <dei:DocumentFiscalYearFocus contextRef="d_2020-01-01_2020-03-31" id="c-30">2020</dei:DocumentFiscalYearFocus>
  <dei:DocumentPeriodEndDate contextRef="d_2020-01-01_2020-03-31" id="c-29">2020-03-31</dei:DocumentPeriodEndDate>
  <dei:DocumentType contextRef="d_2020-01-01_2020-03-31" id="c-28">10-Q</dei:DocumentType>
  <dei:EntityCentralIndexKey contextRef="d_2020-01-01_2020-03-31" id="c-18">0000914156</dei:EntityCentralIndexKey>
  <dei:EntityCommonStockSharesOutstanding contextRef="i_2020-05-01" decimals="INF" id="c-26" unitRef="xbrli-shares">7482844</dei:EntityCommonStockSharesOutstanding>
  <dei:EntityCurrentReportingStatus contextRef="d_2020-01-01_2020-03-31" id="c-22">Yes</dei:EntityCurrentReportingStatus>
  <dei:EntityEmergingGrowthCompany contextRef="d_2020-01-01_2020-03-31" id="c-23">false</dei:EntityEmergingGrowthCompany>
  <dei:EntityFilerCategory contextRef="d_2020-01-01_2020-03-31" id="c-21">Accelerated Filer</dei:EntityFilerCategory>
  <dei:EntityInteractiveDataCurrent contextRef="d_2020-01-01_2020-03-31" id="c-25">Yes</dei:EntityInteractiveDataCurrent>
  <dei:EntityRegistrantName contextRef="d_2020-01-01_2020-03-31" id="c-17">UFP TECHNOLOGIES INC</dei:EntityRegistrantName>
  <dei:EntityShellCompany contextRef="d_2020-01-01_2020-03-31" id="c-27">false</dei:EntityShellCompany>
  <dei:EntitySmallBusiness contextRef="d_2020-01-01_2020-03-31" id="c-24">false</dei:EntitySmallBusiness>
  <dei:Security12bTitle contextRef="d_2020-01-01_2020-03-31" id="c-33">Common Stock</dei:Security12bTitle>
  <dei:TradingSymbol contextRef="d_2020-01-01_2020-03-31" id="c-19">ufpt</dei:TradingSymbol>
  <ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343373" unitRef="iso4217-usd">522000</ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized>
  <ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343374" unitRef="iso4217-usd">85000</ufpt:ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized>
  <ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343365" unitRef="iso4217-usd">525000</ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers>
  <ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343366" unitRef="iso4217-usd">991000</ufpt:ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers>
  <ufpt:InitialRecognitionOfLeaseAssetAndLiability contextRef="d_2020-01-01_2020-03-31" id="c60343390" unitRef="iso4217-usd" xs:nil="true"/>
  <ufpt:InitialRecognitionOfLeaseAssetAndLiability contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343391" unitRef="iso4217-usd">3831000</ufpt:InitialRecognitionOfLeaseAssetAndLiability>
  <ufpt:NumberOfMajorCustomers contextRef="d_2020-01-01_2020-03-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember" decimals="-3" id="c60343548" unitRef="xbrli-pure">0</ufpt:NumberOfMajorCustomers>
  <ufpt:NumberOfMajorCustomers contextRef="d_2019-01-01_2019-03-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember" decimals="-3" id="c60343556" unitRef="xbrli-pure">0</ufpt:NumberOfMajorCustomers>
  <ufpt:ProceedsFromStockOptionsExercisedNet contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343279" unitRef="iso4217-usd">416000</ufpt:ProceedsFromStockOptionsExercisedNet>
  <ufpt:ProceedsFromStockOptionsExercisedNet contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343280" unitRef="iso4217-usd">285000</ufpt:ProceedsFromStockOptionsExercisedNet>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-MedicalMember" decimals="3" id="c60343558" unitRef="xbrli-pure">0.698</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-MedicalMember" decimals="3" id="c60343560" unitRef="xbrli-pure">0.612</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c60343562" unitRef="xbrli-pure">0.095</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-AutomotiveMember" decimals="3" id="c60343564" unitRef="xbrli-pure">0.121</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-ConsumerMember" decimals="3" id="c60343566" unitRef="xbrli-pure">0.071</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-ConsumerMember" decimals="3" id="c60343568" unitRef="xbrli-pure">0.093</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c60343570" unitRef="xbrli-pure">0.056</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="3" id="c60343572" unitRef="xbrli-pure">0.075</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-IndustrialMember" decimals="3" id="c60343574" unitRef="xbrli-pure">0.04</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-IndustrialMember" decimals="3" id="c60343576" unitRef="xbrli-pure">0.053</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c60343578" unitRef="xbrli-pure">0.04</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-ElectronicsMember" decimals="3" id="c60343580" unitRef="xbrli-pure">0.047</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2020-01-01_2020-03-31" decimals="3" id="c60343582" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage contextRef="d_2019-01-01_2019-03-31" decimals="3" id="c60343584" unitRef="xbrli-pure">1</ufpt:RevenueFromContractWithCustomerIncludingAssessedTaxPercentage>
  <ufpt:RevisionsPolicyPolicyTextBlock contextRef="d_2020-01-01_2020-03-31" id="c60343296">&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="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=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Revisions&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 27pt; font-size: 10pt"&gt;Certain revisions have been made to the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31, 2019 &lt;/div&gt;Condensed Consolidated Balance Sheet to conform to the current year presentation relating to a reclassification of long-term operating lease liabilities to current operating lease liabilities. The reclassification resulted in an increase of current operating lease liabilities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$476&lt;/div&gt; thousand and a decrease of long-term operating lease liabilities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$476&lt;/div&gt; thousand. These revisions had &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; impact on previously reported earnings, net income or cash flows and are deemed immaterial to the previously issued financial statements.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</ufpt:RevisionsPolicyPolicyTextBlock>
  <ufpt:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt; color: #8497B0; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid"&gt;Share-based compensation related to:&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;2020&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;/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;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: inherit;"&gt;100&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: inherit;"&gt;100&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: inherit;"&gt;60&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: inherit;"&gt;7&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 ("RSUs")&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: inherit;"&gt;377&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: inherit;"&gt;187&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: inherit;"&gt;537&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: inherit;"&gt;294&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:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343442" unitRef="iso4217-usd-per-xbrli-shares">49.99</ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice>
  <ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343443" unitRef="iso4217-usd-per-xbrli-shares">33.35</ufpt:SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice>
  <us-gaap:AccountsPayableCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343054" unitRef="iso4217-usd">7535000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccountsPayableCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343055" unitRef="iso4217-usd">4577000</us-gaap:AccountsPayableCurrent>
  <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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;Allowance for Credit&lt;br /&gt; Losses&lt;/td&gt; &lt;/tr&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;Three Months Ended&lt;br /&gt; March 31, 2020&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 85%; font-size: 10pt"&gt;Allowance - 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: inherit;"&gt;486&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;Provision for expected credit losses&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;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; padding-bottom: 1pt"&gt;Amounts written off against the 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: inherit;"&gt;(5&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;Allowance - 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: inherit;"&gt;541&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:AccountsReceivableAllowanceForCreditLossTableTextBlock>
  <us-gaap:AccountsReceivableNetCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343020" unitRef="iso4217-usd">29449000</us-gaap:AccountsReceivableNetCurrent>
  <us-gaap:AccountsReceivableNetCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343021" unitRef="iso4217-usd">28648000</us-gaap:AccountsReceivableNetCurrent>
  <us-gaap:AccruedIncomeTaxesCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343062" unitRef="iso4217-usd">5000</us-gaap:AccruedIncomeTaxesCurrent>
  <us-gaap:AccruedIncomeTaxesCurrent contextRef="i_2019-12-31" id="c60343063" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343056" unitRef="iso4217-usd">6350000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccruedLiabilitiesCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343057" unitRef="iso4217-usd">8483000</us-gaap:AccruedLiabilitiesCurrent>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2020-03-31" decimals="-3" id="c60343036" unitRef="iso4217-usd">61062000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="i_2019-12-31" decimals="-3" id="c60343037" unitRef="iso4217-usd">59350000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
  <us-gaap:AdditionalPaidInCapital contextRef="i_2020-03-31" decimals="-3" id="c60343100" unitRef="iso4217-usd">31344000</us-gaap:AdditionalPaidInCapital>
  <us-gaap:AdditionalPaidInCapital contextRef="i_2019-12-31" decimals="-3" id="c60343101" unitRef="iso4217-usd">30952000</us-gaap:AdditionalPaidInCapital>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c60343174" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343175" unitRef="iso4217-usd">560000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c60343176" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343178" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343179" unitRef="iso4217-usd">560000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c60343216" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343217" unitRef="iso4217-usd">271000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c60343218" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343220" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343221" unitRef="iso4217-usd">271000</us-gaap:AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-StockCompensationPlanMember" decimals="-3" id="c60343416" unitRef="iso4217-usd">348000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-StockCompensationPlanMember" decimals="-3" id="c60343417" unitRef="iso4217-usd">164000</us-gaap:AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343447" unitRef="iso4217-usd">100000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-CommonStockMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343448" unitRef="iso4217-usd">100000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343449" unitRef="iso4217-usd">60000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343450" unitRef="iso4217-usd">7000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343451" unitRef="iso4217-usd">377000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343452" unitRef="iso4217-usd">187000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2020-01-01_2020-03-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343453" unitRef="iso4217-usd">537000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllocatedShareBasedCompensationExpense contextRef="d_2019-01-01_2019-03-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" decimals="-3" id="c60343454" unitRef="iso4217-usd">294000</us-gaap:AllocatedShareBasedCompensationExpense>
  <us-gaap:AllowanceForCreditLossesTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539162">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Allowance for Credit Losses&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;Effective &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 1, 2020, &lt;/div&gt;the Company adopted ASU &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,&lt;/div&gt; Financial Instruments &amp;#x2013; Credit Losses (ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt;) which is required to be applied by means of a cumulative-effect adjustment to the opening retained earnings balance as of the adoption date. This ASU replaces the incurred loss impairment model with an expected credit loss impairment model for financial instruments, including trade receivables and contract assets. The amendment requires entities to consider forward-looking information to estimate expected credit losses, resulting in earlier recognition of losses for receivables that are current or &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; yet due, which were &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; considered under the previous accounting guidance. There was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; impact to the Company&amp;#x2019;s opening retained earnings or its consolidated balance sheet upon adoption.&lt;/div&gt; &lt;div style=" color: #212529; font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;The Company is exposed to credit losses primarily through sales of products and services. The Company&amp;#x2019;s expected loss allowance methodology for accounts receivable is developed using historical collection experience, current and future economic and market conditions and a review of the current status of customers' trade accounts receivables. Due to the short-term nature of such receivables, the estimate of amount of accounts receivable that &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; be collected is based on aging of the accounts receivable balances and the financial condition of customers. Additionally, specific allowance amounts are established to record the appropriate provision for customers that have a higher probability of default. The Company&amp;#x2019;s monitoring activities include timely account reconciliation, dispute resolution, payment confirmation, consideration of customers' financial condition and macroeconomic conditions. Balances are written off when determined to be uncollectible. The Company considered the current and expected future economic and market conditions surrounding the novel coronavirus ("COVID-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19"&lt;/div&gt;) pandemic and included specific allowance amounts for any customer determined to have been significantly impacted. Estimates are used to determine the allowance. It is based on assessment of anticipated payment and all other historical, current and future information that is reasonably available.&lt;/div&gt; &lt;div style=" color: #212529; font-size: 10pt; margin: 0pt 0"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0; color: #212529; font-size: 10pt"&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 9; Value: 1 --&gt;   &lt;div style=" margin: 0pt 0; color: #212529; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;The following table provides a roll-forward of the allowance for credit losses that is deducted from the amortized cost basis of accounts receivable to present the net amount expected to be collected for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; months ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 (&lt;/div&gt;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=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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;Allowance for Credit&lt;br /&gt; Losses&lt;/td&gt; &lt;/tr&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;Three Months Ended&lt;br /&gt; March 31, 2020&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 85%; font-size: 10pt"&gt;Allowance - 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: inherit;"&gt;486&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;Provision for expected credit losses&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;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; padding-bottom: 1pt"&gt;Amounts written off against the 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: inherit;"&gt;(5&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;Allowance - 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: inherit;"&gt;541&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:AllowanceForCreditLossesTextBlock>
  <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="i_2019-12-31" decimals="-3" id="c60343403" unitRef="iso4217-usd">486000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
  <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="i_2020-03-31" decimals="-3" id="c60343406" unitRef="iso4217-usd">541000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343023" unitRef="iso4217-usd">541000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343024" unitRef="iso4217-usd">486000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
  <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343405" unitRef="iso4217-usd">5000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343587" unitRef="iso4217-usd">314000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:AmortizationOfIntangibleAssets contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343590" unitRef="iso4217-usd">314000</us-gaap:AmortizationOfIntangibleAssets>
  <us-gaap:Assets contextRef="i_2020-03-31" decimals="-3" id="c60343050" unitRef="iso4217-usd">194213000</us-gaap:Assets>
  <us-gaap:Assets contextRef="i_2019-12-31" decimals="-3" id="c60343051" unitRef="iso4217-usd">188758000</us-gaap:Assets>
  <us-gaap:AssetsCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343032" unitRef="iso4217-usd">59775000</us-gaap:AssetsCurrent>
  <us-gaap:AssetsCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343033" unitRef="iso4217-usd">53250000</us-gaap:AssetsCurrent>
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343388" unitRef="iso4217-usd">232000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <us-gaap:CapitalExpendituresIncurredButNotYetPaid contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343389" unitRef="iso4217-usd">108000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2020-03-31" decimals="-3" id="c60343018" unitRef="iso4217-usd">7334000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2019-12-31" decimals="-3" id="c60343019" unitRef="iso4217-usd">3743000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2018-12-31" decimals="-3" id="c60343288" unitRef="iso4217-usd">3238000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="i_2019-03-31" decimals="-3" id="c60343290" unitRef="iso4217-usd">2493000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343285" unitRef="iso4217-usd">3591000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343286" unitRef="iso4217-usd">-745000</us-gaap:CashAndCashEquivalentsPeriodIncreaseDecrease>
  <us-gaap:CashFlowSupplementalDisclosuresTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539160">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Supplemental Cash Flow Information&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;March 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;2020&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;/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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; text-align: center"&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;Cash paid for:&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;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: 70%; font-size: 10pt; text-align: left"&gt;Interest&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: inherit;"&gt;12&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: inherit;"&gt;47&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;Income taxes, net of refunds&lt;/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: inherit;"&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;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(156&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"&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;Non-cash investing and financing activities:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;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; text-align: left"&gt;Capital additions accrued but not yet paid&lt;/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: inherit;"&gt;232&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: inherit;"&gt;108&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;Recognition of lease asset and 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;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,831&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:CashFlowSupplementalDisclosuresTextBlock>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2020-03-31" id="c60343076" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommitmentsAndContingencies contextRef="i_2019-12-31" id="c60343077" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="i_2020-03-31" decimals="INF" id="c60343092" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <us-gaap:CommonStockParOrStatedValuePerShare contextRef="i_2019-12-31" decimals="INF" id="c60343093" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
  <us-gaap:CommonStockSharesAuthorized contextRef="i_2020-03-31" decimals="INF" id="c60343094" unitRef="xbrli-shares">20000000</us-gaap:CommonStockSharesAuthorized>
  <us-gaap:CommonStockSharesAuthorized contextRef="i_2019-12-31" decimals="INF" id="c60343095" unitRef="xbrli-shares">20000000</us-gaap:CommonStockSharesAuthorized>
  <us-gaap:CommonStockSharesIssued contextRef="i_2020-03-31" decimals="INF" id="c60343096" unitRef="xbrli-shares">7512403</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesIssued contextRef="i_2019-12-31" decimals="INF" id="c60343097" unitRef="xbrli-shares">7475768</us-gaap:CommonStockSharesIssued>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2020-03-31" decimals="INF" id="c60343098" unitRef="xbrli-shares">7482844</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockSharesOutstanding contextRef="i_2019-12-31" decimals="INF" id="c60343099" unitRef="xbrli-shares">7446209</us-gaap:CommonStockSharesOutstanding>
  <us-gaap:CommonStockValue contextRef="i_2020-03-31" decimals="-3" id="c60343090" unitRef="iso4217-usd">75000</us-gaap:CommonStockValue>
  <us-gaap:CommonStockValue contextRef="i_2019-12-31" decimals="-3" id="c60343091" unitRef="iso4217-usd">74000</us-gaap:CommonStockValue>
  <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended&lt;br /&gt; March 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;2020&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;/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: inherit;"&gt;2,574&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: inherit;"&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;/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 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: inherit;"&gt;525&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: inherit;"&gt;991&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;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: inherit;"&gt;(667&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: inherit;"&gt;(526&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;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: inherit;"&gt;2,432&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: inherit;"&gt;2,972&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-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended&lt;br /&gt; March 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;2020&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;/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: inherit;"&gt;72&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: inherit;"&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;/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: inherit;"&gt;522&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: inherit;"&gt;85&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: inherit;"&gt;(404&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: inherit;"&gt;(106&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: inherit;"&gt;190&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: inherit;"&gt;44&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_2019-12-31" decimals="-3" id="c60343371" unitRef="iso4217-usd">72000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2018-12-31" decimals="-3" id="c60343372" unitRef="iso4217-usd">65000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2020-03-31" decimals="-3" id="c60343379" unitRef="iso4217-usd">190000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetNet contextRef="i_2019-03-31" decimals="-3" id="c60343380" unitRef="iso4217-usd">44000</us-gaap:ContractWithCustomerAssetNet>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343375" unitRef="iso4217-usd">404000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
  <us-gaap:ContractWithCustomerAssetReclassifiedToReceivable contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343377" unitRef="iso4217-usd">106000</us-gaap:ContractWithCustomerAssetReclassifiedToReceivable>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2019-12-31" decimals="-3" id="c60343363" unitRef="iso4217-usd">2574000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2018-12-31" decimals="-3" id="c60343364" unitRef="iso4217-usd">2507000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2020-03-31" decimals="-3" id="c60343369" unitRef="iso4217-usd">2432000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiability contextRef="i_2019-03-31" decimals="-3" id="c60343370" unitRef="iso4217-usd">2972000</us-gaap:ContractWithCustomerLiability>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343058" unitRef="iso4217-usd">2432000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343059" unitRef="iso4217-usd">2574000</us-gaap:ContractWithCustomerLiabilityCurrent>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2020-01-01_2020-03-31_FairValueByAssetClassAxis-DeferredRevenueMember" decimals="-3" id="c60343347" unitRef="iso4217-usd">517000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2019-01-01_2019-03-31_FairValueByAssetClassAxis-DeferredRevenueMember" decimals="-3" id="c60343348" unitRef="iso4217-usd">497000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343367" unitRef="iso4217-usd">667000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:ContractWithCustomerLiabilityRevenueRecognized contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343368" unitRef="iso4217-usd">526000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343122" unitRef="iso4217-usd">35454000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:CostOfGoodsAndServicesSold contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343123" unitRef="iso4217-usd">34831000</us-gaap:CostOfGoodsAndServicesSold>
  <us-gaap:DebtDisclosureTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539183">&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; text-align: justify"&gt; &lt;td style="width: 0; text-align: right"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: justify"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Indebtedness&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&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;On &lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&gt;$70&lt;/div&gt; million Amended and Restated Credit Agreement (the &amp;#x201c;Amended and Restated Credit Agreement&amp;#x201d;) with certain of 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=" 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;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: inherit;"&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: inherit;"&gt; may &lt;/div&gt;borrow up to &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$50&lt;/div&gt; million.&amp;nbsp; The Amended and Restated Credit Agreement matures on &lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&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=" 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;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: inherit;"&gt;1.0%&lt;/div&gt; to &lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&gt;0.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: inherit;"&gt; March 31, 2020 &lt;/div&gt;there were &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; amounts outstanding under the Amended and Restated Credit Facilities other than &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$0.7&lt;/div&gt;&lt;/div&gt; million in standby letters of credit outstanding drawable as a financial guarantee on worker&amp;#x2019;s compensation insurance policies. As of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020, &lt;/div&gt;the applicable interest rate was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1.99%&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=" 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;!-- Field: Page; Sequence: 15; Value: 1 --&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 style="display: inline; font-style: italic;"&gt;Derivative Financial Instruments&lt;/div&gt;&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;The Company uses interest-rate-related derivative instruments to manage its exposure related to changes in interest rates on its variable-rate debt instruments. The Company does &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; enter into derivative instruments for any purpose other than cash flow hedging. The Company does &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; speculate using derivative instruments. By using derivative financial instruments to hedge exposures to changes in interest rates, the Company exposes itself 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, which creates credit risk for the Company. When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, the Company is &lt;div style="display: inline; font-style: italic; font: inherit;"&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. The market risk associated with interest-rate contracts is managed by establishing and monitoring parameters that limit the types and degree of market risk that &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be undertaken. The Company assesses interest rate risk by identifying and monitoring changes in interest rate exposures that &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&amp;#x2019;s debt obligations expose the Company to variability in interest payments due to changes in interest rates. The Company believes that it is prudent to limit the variability of a portion of its interest payments. To meet this objective, in connection with the term loan under the Amended and Restated Credit Agreement, the Company entered into a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$20&lt;/div&gt; million, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;-year interest rate swap agreement under which the Company receives &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month LIBOR plus the applicable margin and pays a &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2.7%&lt;/div&gt; fixed rate plus the applicable margin. The swap agreement was established to modify the Company&amp;#x2019;s interest rate exposure by converting interest on the term loan from a variable rate to a fixed rate to hedge against the possibility of rising interest rates during the term of the loan. Because the Company repaid its term loan in full, the swap agreement &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; longer serves this purpose and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;be canceled by the Company prior to its expiration date. The notional amount was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$13.6&lt;/div&gt; million at &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020.&lt;/div&gt; The fair value of the swap as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; was approximately $(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;624&lt;/div&gt;) thousand and $(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;175&lt;/div&gt;) thousand, respectively and is included in other liabilities. Changes in the fair value of the swap are recorded in other expense and were approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$300&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$239&lt;/div&gt; thousand during the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-months ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; respectively.&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="c60343622" 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="c60343623" 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="c60343624" 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="c60343647" unitRef="xbrli-pure">0</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
  <us-gaap:DebtInstrumentFaceAmount contextRef="i_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c60343619" unitRef="iso4217-usd">70000000</us-gaap:DebtInstrumentFaceAmount>
  <us-gaap:DebtInstrumentFaceAmount contextRef="i_2018-02-01_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_LongtermDebtTypeAxis-UnsecuredTermLoanMember" decimals="-3" id="c60343620" unitRef="iso4217-usd">20000000</us-gaap:DebtInstrumentFaceAmount>
  <us-gaap:DebtInstrumentInterestRateEffectivePercentage contextRef="i_2020-03-31_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="4" id="c60343627" unitRef="xbrli-pure">0.0199</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
  <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent contextRef="i_2020-03-31" decimals="-3" id="c60343068" unitRef="iso4217-usd">2817000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
  <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c60343069" unitRef="iso4217-usd">2788000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
  <us-gaap:DeferredCompensationPlanAssets contextRef="i_2020-03-31" decimals="-3" id="c60343044" unitRef="iso4217-usd">2790000</us-gaap:DeferredCompensationPlanAssets>
  <us-gaap:DeferredCompensationPlanAssets contextRef="i_2019-12-31" decimals="-3" id="c60343045" unitRef="iso4217-usd">2775000</us-gaap:DeferredCompensationPlanAssets>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343246" unitRef="iso4217-usd">421000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343247" unitRef="iso4217-usd">424000</us-gaap:DeferredIncomeTaxExpenseBenefit>
  <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="i_2020-03-31" decimals="-3" id="c60343066" unitRef="iso4217-usd">5342000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
  <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="i_2019-12-31" decimals="-3" id="c60343067" unitRef="iso4217-usd">4921000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
  <us-gaap:DepreciationDepletionAndAmortization contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343240" unitRef="iso4217-usd">2066000</us-gaap:DepreciationDepletionAndAmortization>
  <us-gaap:DepreciationDepletionAndAmortization contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343241" unitRef="iso4217-usd">2022000</us-gaap:DepreciationDepletionAndAmortization>
  <us-gaap:DerivativeFairValueOfDerivativeNet contextRef="i_2020-03-31_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c60343640" unitRef="iso4217-usd">624000</us-gaap:DerivativeFairValueOfDerivativeNet>
  <us-gaap:DerivativeFairValueOfDerivativeNet contextRef="i_2019-03-31_BalanceSheetLocationAxis-OtherCurrentLiabilitiesMember_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c60343641" unitRef="iso4217-usd">175000</us-gaap:DerivativeFairValueOfDerivativeNet>
  <us-gaap:DerivativeFixedInterestRate contextRef="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="4" id="c60343635" unitRef="xbrli-pure">0.027</us-gaap:DerivativeFixedInterestRate>
  <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="d_2020-01-01_2020-03-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="-3" id="c60343642" unitRef="iso4217-usd">300000</us-gaap:DerivativeGainLossOnDerivativeNet>
  <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="d_2019-01-01_2019-03-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember_IncomeStatementLocationAxis-OtherNonoperatingIncomeExpenseMember" decimals="-3" id="c60343643" unitRef="iso4217-usd">239000</us-gaap:DerivativeGainLossOnDerivativeNet>
  <us-gaap:DerivativeLiabilities contextRef="i_2020-03-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember" decimals="-3" id="c60343413" unitRef="iso4217-usd">-624000</us-gaap:DerivativeLiabilities>
  <us-gaap:DerivativeLiabilities contextRef="i_2019-03-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member_FairValueByMeasurementFrequencyAxis-FairValueMeasurementsRecurringMember" decimals="-3" id="c60343414" unitRef="iso4217-usd">-175000</us-gaap:DerivativeLiabilities>
  <us-gaap:DerivativeNotionalAmount contextRef="i_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c60343632" unitRef="iso4217-usd">20000000</us-gaap:DerivativeNotionalAmount>
  <us-gaap:DerivativeNotionalAmount contextRef="i_2020-03-31_DerivativeInstrumentRiskAxis-InterestRateSwapMember" decimals="-3" id="c60343636" unitRef="iso4217-usd">13600000</us-gaap:DerivativeNotionalAmount>
  <us-gaap:DerivativeTermOfContract contextRef="d_2018-02-01_2018-02-01_DerivativeInstrumentRiskAxis-InterestRateSwapMember" id="c60343633">P5Y</us-gaap:DerivativeTermOfContract>
  <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid"&gt;Net sales of:&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;2020&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;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&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: inherit;"&gt;47,029&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: inherit;"&gt;46,410&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;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: inherit;"&gt;677&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: inherit;"&gt;645&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;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: inherit;"&gt;571&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: inherit;"&gt;273&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 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: inherit;"&gt;48,277&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: inherit;"&gt;47,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;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
  <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539166">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;6&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Share-Based Compensation&lt;/div&gt;&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: 0pt 0 0pt 27pt; font-size: 10pt"&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=" 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;The Company issues share-based awards through several plans that are described in detail in the notes to the consolidated financial statements for the year ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31, 2019. &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 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="white-space: nowrap; font-size: 10pt; color: #8497B0; text-align: center"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; font-weight: bold"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid"&gt;Share-based compensation related to:&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;2020&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;/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;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: inherit;"&gt;100&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: inherit;"&gt;100&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: inherit;"&gt;60&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: inherit;"&gt;7&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 ("RSUs")&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: inherit;"&gt;377&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: inherit;"&gt;187&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: inherit;"&gt;537&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: inherit;"&gt;294&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; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&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 27.35pt; font-size: 10pt"&gt;The total income tax benefit recognized in the condensed consolidated statements of income for share-based compensation arrangements was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$348&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$164&lt;/div&gt; thousand for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; respectively.&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 27.9pt 0pt 27pt; font-size: 10pt"&gt;The following is a summary of stock option activity under all plans for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month period ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020&lt;/div&gt;&lt;/div&gt;:&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: Red; font-size: 10pt; text-align: center; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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 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;br /&gt; &lt;/div&gt; (in years)&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;br /&gt; &lt;/div&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="width: 40%; font-size: 10pt"&gt;Outstanding at December 31, 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;&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: inherit;"&gt;105,614&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: inherit;"&gt;25.34&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: inherit;"&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="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: inherit;"&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;/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: inherit;"&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: inherit;"&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: inherit;"&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: inherit;"&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: inherit;"&gt;(19,586&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;$&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: inherit;"&gt;21.20&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: inherit;"&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: inherit;"&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 at March 31, 2020&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: inherit;"&gt;86,028&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: inherit;"&gt;26.28&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: inherit;"&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: inherit;"&gt;1,025&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 March 31, 2020&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: inherit;"&gt;65,742&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: inherit;"&gt;23.04&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: inherit;"&gt;5.00&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: inherit;"&gt;989&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="text-indent: -10pt; padding-left: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Vested and expected to vest at March 31, 2020&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: inherit;"&gt;86,028&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: inherit;"&gt;26.28&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: inherit;"&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: inherit;"&gt;1,025&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; color: Red; font-size: 10pt; text-align: center"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt; text-align: center"&gt;&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;During the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month period ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020&lt;/div&gt;&lt;/div&gt;, the total intrinsic value of all options exercised (i.e., the difference between the market price on the exercise date and the price paid by the employees to exercise the options) was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$530&lt;/div&gt; thousand, and the total amount of consideration received by the Company from the exercised options was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$415&lt;/div&gt; thousand. During the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month period ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2019&lt;/div&gt;&lt;/div&gt;, the total intrinsic value of all options exercised was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$274&lt;/div&gt; thousand, and the total amount of consideration received by the Company from the exercised options was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$285&lt;/div&gt; thousand. 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 both the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; shares were &lt;/div&gt;surrendered for this purpose.&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;On &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; February 24, 2020&lt;/div&gt;&lt;div style="display: inline; color: black"&gt;, the Company&amp;#x2019;s Compensation Committee approved the award of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$400&lt;/div&gt; thousand, payable in shares of 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: inherit;"&gt;2003&lt;/div&gt; &lt;/div&gt;&lt;div style="display: inline; color: windowtext"&gt;Incentive Plan. Subject to his continued employment and the terms of his employment agreement, the shares will be issued in &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 2020. &lt;/div&gt;&lt;/div&gt;&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;!-- Field: Page; Sequence: 11; Value: 1 --&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;The following table summarizes information about RSU activity during the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020:&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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;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 Average&lt;br /&gt; Award Date&lt;br /&gt; 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, 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;&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: inherit;"&gt;113,866&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: inherit;"&gt;28.36&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: inherit;"&gt;42,733&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: inherit;"&gt;49.96&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;Shares vested&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: inherit;"&gt;(28,244&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: inherit;"&gt;27.02&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 at March 31, 2020&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: inherit;"&gt;128,355&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: inherit;"&gt;31.58&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 27pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&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;At the Company&amp;#x2019;s discretion, upon vesting 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 and issued to the RSU holder. During the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11,195&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8,132&lt;/div&gt; shares were surrendered at an average market price of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$49.99&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$33.35,&lt;/div&gt; respectively.&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 style="display: inline; color: windowtext"&gt;As of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020, &lt;/div&gt;the Company had approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$4.0&lt;/div&gt; million of unrecognized compensation expense that is expected to be recognized over a period of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt; years&lt;/div&gt;.&lt;/div&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
  <us-gaap:EarningsPerShareBasic contextRef="d_2020-01-01_2020-03-31" decimals="INF" id="c60343143" unitRef="iso4217-usd-per-xbrli-shares">0.52</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareBasic contextRef="d_2019-01-01_2019-03-31" decimals="INF" id="c60343144" unitRef="iso4217-usd-per-xbrli-shares">0.50</us-gaap:EarningsPerShareBasic>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2020-01-01_2020-03-31" decimals="INF" id="c60343145" unitRef="iso4217-usd-per-xbrli-shares">0.52</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareDiluted contextRef="d_2019-01-01_2019-03-31" decimals="INF" id="c60343146" unitRef="iso4217-usd-per-xbrli-shares">0.50</us-gaap:EarningsPerShareDiluted>
  <us-gaap:EarningsPerShareTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539175">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;9&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Income Per Share&lt;/div&gt;&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: 0pt 0 0pt 27pt; font-size: 10pt"&gt;Basic income per share is based on the weighted average number of shares of common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive common stock equivalent shares outstanding during each period.&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;The weighted average number of shares used to compute basic and diluted net income per share consisted of the following (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=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 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;2020&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;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Basic weighted average common shares outstanding&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: inherit;"&gt;7,457&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: inherit;"&gt;7,402&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 RSUs&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: inherit;"&gt;81&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: inherit;"&gt;64&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;Diluted weighted average common shares outstanding&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: inherit;"&gt;7,538&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: inherit;"&gt;7,466&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; color: Red; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; color: Red; 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=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;The computation of diluted earnings per share excludes the effect of the potential exercise of 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: inherit;"&gt;not&lt;/div&gt; included in the computation of diluted income per share because the effect would be antidilutive. For both the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; color: windowtext"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt;&lt;/div&gt;, the number of stock awards excluded from the computation of diluted earnings per share for this reason was zero.&lt;/div&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2020-01-01_2020-03-31" decimals="3" id="c60343613" unitRef="xbrli-pure">0.178</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="d_2019-01-01_2019-03-31" decimals="3" id="c60343614" unitRef="xbrli-pure">0.219</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized contextRef="i_2020-03-31" decimals="-3" id="c60343444" unitRef="iso4217-usd">4000000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
  <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="d_2020-01-01_2020-03-31" id="c60343445">P4Y</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
  <us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Level 2&lt;/div&gt;&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;March 31,&lt;br /&gt; 2020&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;March 31,&lt;br /&gt; 2019&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;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: White"&gt; &lt;td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left"&gt;Derivative financial instruments&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: inherit;"&gt;(624&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;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(175&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;/table&gt;&lt;/div&gt;</us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock>
  <us-gaap:FairValueDisclosuresTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539164">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;5&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Fair Value of Financial Instruments&lt;/div&gt;&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: 0pt 0 0pt 27.35pt; font-size: 10pt"&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: inherit;"&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=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&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=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&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=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Level &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"&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=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&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=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt; text-align: left"&gt;&lt;div style="display: inline; text-decoration: underline;"&gt;Level 2&lt;/div&gt;&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;March 31,&lt;br /&gt; 2020&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;March 31,&lt;br /&gt; 2019&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;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: White"&gt; &lt;td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left"&gt;Derivative financial instruments&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: inherit;"&gt;(624&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;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(175&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;/table&gt; &lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&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=" margin: 0pt 0; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; color: windowtext"&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;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c60343596" unitRef="iso4217-usd">80000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c60343597" unitRef="iso4217-usd">200000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c60343598" unitRef="iso4217-usd">2443000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="i_2020-03-31" decimals="-3" id="c60343599" unitRef="iso4217-usd">2723000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive contextRef="i_2020-03-31" decimals="-3" id="c60343610" unitRef="iso4217-usd">14868000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear contextRef="i_2020-03-31" decimals="-3" id="c60343605" unitRef="iso4217-usd">943000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive contextRef="i_2020-03-31" decimals="-3" id="c60343609" unitRef="iso4217-usd">1164000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour contextRef="i_2020-03-31" decimals="-3" id="c60343608" unitRef="iso4217-usd">1172000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree contextRef="i_2020-03-31" decimals="-3" id="c60343607" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
  <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo contextRef="i_2020-03-31" decimals="-3" id="c60343606" unitRef="iso4217-usd">1257000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c60343592" unitRef="iso4217-usd">367000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c60343593" unitRef="iso4217-usd">462000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c60343594" unitRef="iso4217-usd">22555000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="i_2020-03-31" decimals="-3" id="c60343595" unitRef="iso4217-usd">23384000</us-gaap:FiniteLivedIntangibleAssetsGross>
  <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="i_2020-03-31" decimals="-3" id="c60343611" unitRef="iso4217-usd">20661000</us-gaap:FiniteLivedIntangibleAssetsNet>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343242" unitRef="iso4217-usd">4000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
  <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="d_2019-01-01_2019-03-31" id="c60343243" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:Goodwill contextRef="i_2020-03-31" decimals="-3" id="c60343040" unitRef="iso4217-usd">51838000</us-gaap:Goodwill>
  <us-gaap:Goodwill contextRef="i_2019-12-31" decimals="-3" id="c60343041" unitRef="iso4217-usd">51838000</us-gaap:Goodwill>
  <us-gaap:GrossProfit contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343124" unitRef="iso4217-usd">12823000</us-gaap:GrossProfit>
  <us-gaap:GrossProfit contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343125" unitRef="iso4217-usd">12497000</us-gaap:GrossProfit>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343136" unitRef="iso4217-usd">4732000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343137" unitRef="iso4217-usd">4783000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
  <us-gaap:IncomeTaxDisclosureTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539182">&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; text-align: justify"&gt; &lt;td style="width: 0; text-align: right"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;12&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: justify"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Income Taxes&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&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 27.35pt; font-size: 10pt"&gt;The income tax expense included in the accompanying unaudited condensed consolidated statements of income principally relates to the Company&amp;#x2019;s proportionate share of the pre-tax income of its wholly-owned subsidiaries. The determination of income tax expense for interim reporting purposes is based upon the estimated effective tax rate for the year, adjusted for the impact of any discrete items which are accounted for in the period in which they occur. &lt;div style="display: inline; color: windowtext"&gt;The Company recorded tax expense of approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;17.8%&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;21.9%&lt;/div&gt; of income before income tax expense for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; respectively. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343138" unitRef="iso4217-usd">841000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxExpenseBenefit contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343139" unitRef="iso4217-usd">1049000</us-gaap:IncomeTaxExpenseBenefit>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2020-01-01_2020-03-31" id="c60343385" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:IncomeTaxesPaidNet contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343386" unitRef="iso4217-usd">-156000</us-gaap:IncomeTaxesPaidNet>
  <us-gaap:IncomeTaxesReceivable contextRef="i_2020-03-31" id="c60343030" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:IncomeTaxesReceivable contextRef="i_2019-12-31" decimals="-3" id="c60343031" unitRef="iso4217-usd">279000</us-gaap:IncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343259" unitRef="iso4217-usd">2726000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343260" unitRef="iso4217-usd">-907000</us-gaap:IncreaseDecreaseInAccountsPayable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343249" unitRef="iso4217-usd">801000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343250" unitRef="iso4217-usd">1451000</us-gaap:IncreaseDecreaseInAccountsReceivable>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343261" unitRef="iso4217-usd">-2133000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343262" unitRef="iso4217-usd">-2506000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343263" unitRef="iso4217-usd">-142000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343264" unitRef="iso4217-usd">465000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343255" unitRef="iso4217-usd">-284000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInIncomeTaxesReceivable contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343256" unitRef="iso4217-usd">-781000</us-gaap:IncreaseDecreaseInIncomeTaxesReceivable>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343251" unitRef="iso4217-usd">1966000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInInventories contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343252" unitRef="iso4217-usd">-139000</us-gaap:IncreaseDecreaseInInventories>
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343257" unitRef="iso4217-usd">-247000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <us-gaap:IncreaseDecreaseInOtherOperatingAssets contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343258" unitRef="iso4217-usd">338000</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
  <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343265" unitRef="iso4217-usd">62000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
  <us-gaap:IncreaseDecreaseInOtherOperatingLiabilities contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343266" unitRef="iso4217-usd">608000</us-gaap:IncreaseDecreaseInOtherOperatingLiabilities>
  <us-gaap:IncreaseDecreaseInPrepaidExpense contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343253" unitRef="iso4217-usd">446000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <us-gaap:IncreaseDecreaseInPrepaidExpense contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343254" unitRef="iso4217-usd">-364000</us-gaap:IncreaseDecreaseInPrepaidExpense>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343542" unitRef="xbrli-shares">81000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343543" unitRef="xbrli-shares">64000</us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements>
  <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539179">&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; text-align: justify"&gt; &lt;td style="width: 0; text-align: right"&gt;&lt;/td&gt; &lt;td style="width: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;11&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td style="text-align: justify"&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Other Intangible Assets&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&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 carrying values of the Company&amp;#x2019;s definite lived intangible assets as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;are as follows (in&amp;nbsp;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=" 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-left: 36px; 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;Tradename&lt;br /&gt; &amp;amp; Brand&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;Non-&lt;br /&gt; Compete&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;Customer&lt;br /&gt; List&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;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt"&gt;Estimated useful life&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&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"&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: 40%; 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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&gt;(80&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: inherit;"&gt;(200&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: inherit;"&gt;(2,443&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: inherit;"&gt;(2,723&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: inherit;"&gt;287&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: inherit;"&gt;262&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: inherit;"&gt;20,112&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: inherit;"&gt;20,661&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=" 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;&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: 14; 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;Amortization expense related to intangible assets was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;314&lt;/div&gt; &lt;/div&gt;thousand for both the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019.&lt;/div&gt; The estimated remaining amortization expense as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;is 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=" color: Red; font-size: 10pt; text-indent: -0.35pt; margin: 0pt 0 0pt 0.75in"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; min-width: 700px;"&gt;  &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Remainder of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&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;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;943&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="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: inherit;"&gt;1,257&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: inherit;"&gt;1,257&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;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: inherit;"&gt;1,172&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;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: inherit;"&gt;1,164&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; 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: inherit;"&gt;14,868&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: 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: inherit;"&gt;20,661&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:IntangibleAssetsDisclosureTextBlock>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2020-03-31" decimals="-3" id="c60343042" unitRef="iso4217-usd">20661000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2019-12-31" decimals="-3" id="c60343043" unitRef="iso4217-usd">20975000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNameAndBrandMember" decimals="-3" id="c60343600" unitRef="iso4217-usd">287000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-NoncompeteAgreementsMember" decimals="-3" id="c60343601" unitRef="iso4217-usd">262000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="i_2020-03-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerListsMember" decimals="-3" id="c60343602" unitRef="iso4217-usd">20112000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
  <us-gaap:InterestExpense contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343132" unitRef="iso4217-usd">16000</us-gaap:InterestExpense>
  <us-gaap:InterestExpense contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343133" unitRef="iso4217-usd">231000</us-gaap:InterestExpense>
  <us-gaap:InterestPaidNet contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343383" unitRef="iso4217-usd">12000</us-gaap:InterestPaidNet>
  <us-gaap:InterestPaidNet contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343384" unitRef="iso4217-usd">47000</us-gaap:InterestPaidNet>
  <us-gaap:InventoryDisclosureTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539170">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;7&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Inventories&lt;/div&gt;&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: 0pt 0 0pt 27pt; font-size: 10pt"&gt;Inventories are stated at the lower of cost (determined using the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt;-in, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt;-out method) or net realizable value, and consist of the following at the stated dates (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=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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;March 31,&lt;br /&gt; 2020&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;December 31,&lt;br /&gt; 2019&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: inherit;"&gt;11,471&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: inherit;"&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;/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: inherit;"&gt;2,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: inherit;"&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;/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: inherit;"&gt;5,976&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: inherit;"&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;/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: 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: inherit;"&gt;20,242&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: inherit;"&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;/tr&gt;  &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="i_2020-03-31" decimals="-3" id="c60343494" unitRef="iso4217-usd">5976000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="i_2019-12-31" decimals="-3" id="c60343495" unitRef="iso4217-usd">5457000</us-gaap:InventoryFinishedGoodsNetOfReserves>
  <us-gaap:InventoryNet contextRef="i_2020-03-31" decimals="-3" id="c60343496" unitRef="iso4217-usd">20242000</us-gaap:InventoryNet>
  <us-gaap:InventoryNet contextRef="i_2019-12-31" decimals="-3" id="c60343497" unitRef="iso4217-usd">18276000</us-gaap:InventoryNet>
  <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="i_2020-03-31" decimals="-3" id="c60343490" unitRef="iso4217-usd">11471000</us-gaap:InventoryRawMaterialsNetOfReserves>
  <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="i_2019-12-31" decimals="-3" id="c60343491" unitRef="iso4217-usd">10540000</us-gaap:InventoryRawMaterialsNetOfReserves>
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="i_2020-03-31" decimals="-3" id="c60343492" unitRef="iso4217-usd">2795000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="i_2019-12-31" decimals="-3" id="c60343493" unitRef="iso4217-usd">2279000</us-gaap:InventoryWorkInProcessNetOfReserves>
  <us-gaap:LeaseCost contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343511" unitRef="iso4217-usd">369000</us-gaap:LeaseCost>
  <us-gaap:LeaseCost contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343512" unitRef="iso4217-usd">370000</us-gaap:LeaseCost>
  <us-gaap:LeaseCostTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 31,&lt;br /&gt; ($'s in thousands)&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;2020&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;/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;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: 70%; font-size: 10pt; text-align: left"&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: inherit;"&gt;305&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: inherit;"&gt;307&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;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: inherit;"&gt;57&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: inherit;"&gt;57&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; padding-bottom: 1pt"&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: inherit;"&gt;7&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: inherit;"&gt;6&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: inherit;"&gt;369&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: inherit;"&gt;370&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;&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;Cash paid for amounts included in measurement of lease 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: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&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: inherit;"&gt;305&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: inherit;"&gt;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: rgb(204,238,255)"&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="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;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;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; padding-bottom: 2.5pt"&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: inherit;"&gt;2.45&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: inherit;"&gt;3.37&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;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;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; padding-bottom: 2.5pt"&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: inherit;"&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;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: inherit;"&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_2020-01-01_2020-03-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-left: 36px; 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;Remainder of 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: inherit;"&gt;874&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: inherit;"&gt;1,121&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: inherit;"&gt;959&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: inherit;"&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: inherit;"&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: inherit;"&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="text-indent: 10pt; 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: inherit;"&gt;2,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: White"&gt; &lt;td style="text-indent: 10pt; 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: inherit;"&gt;(163&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: 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: inherit;"&gt;2,827&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_2020-03-31" decimals="-3" id="c60343528" unitRef="iso4217-usd">2990000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="i_2020-03-31" id="c60343527" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="i_2020-03-31" id="c60343526" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="i_2020-03-31" decimals="-3" id="c60343525" unitRef="iso4217-usd">36000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="i_2020-03-31" decimals="-3" id="c60343524" unitRef="iso4217-usd">959000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="i_2020-03-31" decimals="-3" id="c60343523" unitRef="iso4217-usd">1121000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
  <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear contextRef="i_2020-03-31" decimals="-3" id="c60343522" unitRef="iso4217-usd">874000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
  <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount contextRef="i_2020-03-31" decimals="-3" id="c60343529" unitRef="iso4217-usd">163000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
  <us-gaap:LesseeOperatingLeasesTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539172">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;8&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Leases&lt;/div&gt;&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: 0pt 0 0pt 27pt; font-size: 10pt"&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: inherit;"&gt;12&lt;/div&gt; months or less are &lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&gt;not&lt;/div&gt; included in the ROU assets or operating lease liabilities.&amp;nbsp;These are expensed as incurred and recorded as variable lease expense.&amp;nbsp;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.&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 0pt 27pt; font-size: 10pt"&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.&amp;nbsp;ROU assets and operating lease liabilities are&amp;nbsp;recognized at commencement date based on the net present value of fixed lease payments over the lease term.&amp;nbsp;The Company's lease term&amp;nbsp;includes&amp;nbsp;options to extend or terminate the lease when it is reasonably certain that we will exercise that option.&amp;nbsp;ROU assets will also be adjusted for any deferred or accrued rent. As the Company's&amp;nbsp;operating leases do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; typically provide an implicit rate,&amp;nbsp;the Company uses&amp;nbsp;its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&amp;nbsp;Operating fixed lease expense is recognized on a straight-line basis over the lease term.&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;/div&gt;    &lt;!-- Field: /Page --&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 31,&lt;br /&gt; ($'s in thousands)&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;2020&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;/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;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: 70%; font-size: 10pt; text-align: left"&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: inherit;"&gt;305&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: inherit;"&gt;307&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;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: inherit;"&gt;57&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: inherit;"&gt;57&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; padding-bottom: 1pt"&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: inherit;"&gt;7&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: inherit;"&gt;6&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: inherit;"&gt;369&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: inherit;"&gt;370&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;&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;Cash paid for amounts included in measurement of lease 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: White"&gt; &lt;td style="text-indent: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&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: inherit;"&gt;305&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: inherit;"&gt;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: rgb(204,238,255)"&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="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;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;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; padding-bottom: 2.5pt"&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: inherit;"&gt;2.45&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: inherit;"&gt;3.37&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;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;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; padding-bottom: 2.5pt"&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: inherit;"&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;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: inherit;"&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 27pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;The aggregate future lease payments for operating leases as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &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 cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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;Remainder of 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: inherit;"&gt;874&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: inherit;"&gt;1,121&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: inherit;"&gt;959&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: inherit;"&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: inherit;"&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: inherit;"&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="text-indent: 10pt; 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: inherit;"&gt;2,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: White"&gt; &lt;td style="text-indent: 10pt; 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: inherit;"&gt;(163&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: 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: inherit;"&gt;2,827&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:LesseeOperatingLeasesTextBlock>
  <us-gaap:LettersOfCreditOutstandingAmount contextRef="i_2020-03-31_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c60343626" unitRef="iso4217-usd">700000</us-gaap:LettersOfCreditOutstandingAmount>
  <us-gaap:Liabilities contextRef="i_2020-03-31" decimals="-3" id="c60343074" unitRef="iso4217-usd">27938000</us-gaap:Liabilities>
  <us-gaap:Liabilities contextRef="i_2019-12-31" decimals="-3" id="c60343075" unitRef="iso4217-usd">26767000</us-gaap:Liabilities>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2020-03-31" decimals="-3" id="c60343118" unitRef="iso4217-usd">194213000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesAndStockholdersEquity contextRef="i_2019-12-31" decimals="-3" id="c60343119" unitRef="iso4217-usd">188758000</us-gaap:LiabilitiesAndStockholdersEquity>
  <us-gaap:LiabilitiesCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343064" unitRef="iso4217-usd">17462000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LiabilitiesCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343065" unitRef="iso4217-usd">16784000</us-gaap:LiabilitiesCurrent>
  <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity contextRef="i_2018-02-01_CreditFacilityAxis-UnsecuredRevolvingCreditFacilityMember_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c60343621" unitRef="iso4217-usd">50000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
  <us-gaap:LinesOfCreditCurrent contextRef="i_2020-03-31_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember" decimals="-3" id="c60343625" unitRef="iso4217-usd">0</us-gaap:LinesOfCreditCurrent>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343283" unitRef="iso4217-usd">-144000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343284" unitRef="iso4217-usd">-2986000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343274" unitRef="iso4217-usd">-1007000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343275" unitRef="iso4217-usd">-1388000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343267" unitRef="iso4217-usd">4742000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343268" unitRef="iso4217-usd">3629000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
  <us-gaap:NetIncomeLoss contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343237" unitRef="iso4217-usd">3891000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343238" unitRef="iso4217-usd">3734000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c60343181" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c60343182" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c60343183" unitRef="iso4217-usd">3891000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343185" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c60343223" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" id="c60343224" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c60343225" unitRef="iso4217-usd">3734000</us-gaap:NetIncomeLoss>
  <us-gaap:NetIncomeLoss contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343227" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="d_2020-01-01_2020-03-31" id="c60343293">&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="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=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;Recent Accounting Pronouncements&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&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; background-color: white"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 2016, &lt;/div&gt;the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,&lt;/div&gt; &lt;div style="display: inline; font-style: italic;"&gt;Financial Instruments &amp;#x2013; Credit Losses (Accounting Standards Codification (ASC) &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt;)&lt;/div&gt;. The Company adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 1, 2020. &lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; color: windowtext"&gt;See Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt; for further details&lt;/div&gt;&lt;div style="display: inline; background-color: white"&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;&lt;div style="display: inline; background-color: white"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 2017, &lt;/div&gt;the FASB issued ASU&amp;nbsp;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04,&lt;/div&gt;&amp;nbsp;&lt;div style="display: inline; font-style: italic;"&gt;Intangibles&amp;#x2014;Goodwill and Other (ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt;), Simplifying the Test for Goodwill Impairment&lt;/div&gt;. The guidance removes Step &lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&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: inherit;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019.&lt;/div&gt; The Company adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt; on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 1, 2020 &lt;/div&gt;and it did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on its financial condition or results of operations.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
  <us-gaap:OperatingIncomeLoss contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343130" unitRef="iso4217-usd">5075000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingIncomeLoss contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343131" unitRef="iso4217-usd">5253000</us-gaap:OperatingIncomeLoss>
  <us-gaap:OperatingLeaseCost contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343505" unitRef="iso4217-usd">305000</us-gaap:OperatingLeaseCost>
  <us-gaap:OperatingLeaseCost contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343506" unitRef="iso4217-usd">307000</us-gaap:OperatingLeaseCost>
  <us-gaap:OperatingLeaseLiability contextRef="i_2020-03-31" decimals="-3" id="c60343530" unitRef="iso4217-usd">2827000</us-gaap:OperatingLeaseLiability>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2019-12-31_RestatementAxis-RestatementAdjustmentMember" decimals="-3" id="c60343327" unitRef="iso4217-usd">476000</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343060" unitRef="iso4217-usd">1140000</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343061" unitRef="iso4217-usd">1150000</us-gaap:OperatingLeaseLiabilityCurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2019-12-31_RestatementAxis-RestatementAdjustmentMember" decimals="-3" id="c60343328" unitRef="iso4217-usd">-476000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2020-03-31" decimals="-3" id="c60343070" unitRef="iso4217-usd">1687000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c60343071" unitRef="iso4217-usd">1940000</us-gaap:OperatingLeaseLiabilityNoncurrent>
  <us-gaap:OperatingLeasePayments contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343514" unitRef="iso4217-usd">305000</us-gaap:OperatingLeasePayments>
  <us-gaap:OperatingLeasePayments contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343515" unitRef="iso4217-usd">303000</us-gaap:OperatingLeasePayments>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2020-03-31" decimals="-3" id="c60343046" unitRef="iso4217-usd">2771000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseRightOfUseAsset contextRef="i_2019-12-31" decimals="-3" id="c60343047" unitRef="iso4217-usd">3034000</us-gaap:OperatingLeaseRightOfUseAsset>
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="i_2020-03-31" decimals="4" id="c60343520" unitRef="xbrli-pure">0.0445</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="i_2019-03-31" decimals="4" id="c60343521" unitRef="xbrli-pure">0.0445</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2020-03-31" id="c60343517">P2Y164D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2019-03-31" id="c60343518">P3Y135D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
  <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539155">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Basis of Presentation&lt;/div&gt;&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: 0pt 0 0pt 27pt; font-size: 10pt"&gt;The interim condensed consolidated financial statements of UFP Technologies,&amp;nbsp;Inc. (the &amp;#x201c;Company&amp;#x201d;) presented herein, have been prepared pursuant to the rules&amp;nbsp;of the Securities and Exchange Commission for quarterly reports on Form&amp;nbsp;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;-Q and do &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; include all the information and note disclosures required by accounting principles generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial statements and notes thereto for the year ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31, 2019, &lt;/div&gt;included in the Company's &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; Annual Report on Form&amp;nbsp;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;-K, as filed with the Securities and Exchange Commission.&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;The condensed consolidated balance sheets as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31, 2019, &lt;/div&gt;the condensed consolidated statements of income for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; the condensed consolidated statements of stockholders&amp;#x2019; equity for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019,&lt;/div&gt; and the condensed consolidated statements of cash flows for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;31,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2020&lt;/div&gt; and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; are unaudited but, in the opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation of results for these interim periods. The condensed consolidated balance sheet as of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31, 2019 &lt;/div&gt;has been derived from the Company&amp;#x2019;s annual financial statements that were audited by an independent registered public accounting firm but does &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; include all of the information and footnotes required for complete audited financial statements.&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;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.&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;The results of operations for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month period ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; necessarily indicative of the results to be expected for the entire fiscal year ending &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31, 2020.&lt;/div&gt;&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 style="display: inline; font-style: italic;"&gt;Recent Accounting Pronouncements&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&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; background-color: white"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; June 2016, &lt;/div&gt;the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2016&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;13,&lt;/div&gt; &lt;div style="display: inline; font-style: italic;"&gt;Financial Instruments &amp;#x2013; Credit Losses (Accounting Standards Codification (ASC) &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt;)&lt;/div&gt;. The Company adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 1, 2020. &lt;/div&gt;&lt;/div&gt;&lt;div style="display: inline; color: windowtext"&gt;See Note &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt; for further details&lt;/div&gt;&lt;div style="display: inline; background-color: white"&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;&lt;div style="display: inline; background-color: white"&gt;In &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 2017, &lt;/div&gt;the FASB issued ASU&amp;nbsp;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2017&lt;/div&gt;-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;04,&lt;/div&gt;&amp;nbsp;&lt;div style="display: inline; font-style: italic;"&gt;Intangibles&amp;#x2014;Goodwill and Other (ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt;), Simplifying the Test for Goodwill Impairment&lt;/div&gt;. The guidance removes Step &lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&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: inherit;"&gt; December&amp;nbsp;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;15,&lt;/div&gt; &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019.&lt;/div&gt; The Company adopted ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;350&lt;/div&gt; on &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; January 1, 2020 &lt;/div&gt;and it did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; have a material impact on its financial condition or results of operations.&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 style="display: inline; font-style: italic;"&gt;Revisions&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 27pt; font-size: 10pt"&gt;Certain revisions have been made to the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; December 31, 2019 &lt;/div&gt;Condensed Consolidated Balance Sheet to conform to the current year presentation relating to a reclassification of long-term operating lease liabilities to current operating lease liabilities. The reclassification resulted in an increase of current operating lease liabilities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$476&lt;/div&gt; thousand and a decrease of long-term operating lease liabilities of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$476&lt;/div&gt; thousand. These revisions had &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; impact on previously reported earnings, net income or cash flows and are deemed immaterial to the previously issued financial statements.&lt;/div&gt;&lt;/div&gt;</us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2020-03-31" decimals="-3" id="c60343048" unitRef="iso4217-usd">148000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherAssetsNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c60343049" unitRef="iso4217-usd">147000</us-gaap:OtherAssetsNoncurrent>
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="i_2020-03-31" decimals="-3" id="c60343072" unitRef="iso4217-usd">630000</us-gaap:OtherLiabilitiesNoncurrent>
  <us-gaap:OtherLiabilitiesNoncurrent contextRef="i_2019-12-31" decimals="-3" id="c60343073" unitRef="iso4217-usd">334000</us-gaap:OtherLiabilitiesNoncurrent>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343134" unitRef="iso4217-usd">-327000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:OtherNonoperatingIncomeExpense contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343135" unitRef="iso4217-usd">-239000</us-gaap:OtherNonoperatingIncomeExpense>
  <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343281" unitRef="iso4217-usd">560000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343282" unitRef="iso4217-usd">271000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343270" unitRef="iso4217-usd">1020000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343271" unitRef="iso4217-usd">1388000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
  <us-gaap:PreferredStockParOrStatedValuePerShare contextRef="i_2020-03-31" decimals="INF" id="c60343082" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
  <us-gaap:PreferredStockParOrStatedValuePerShare contextRef="i_2019-12-31" decimals="INF" id="c60343083" unitRef="iso4217-usd-per-xbrli-shares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
  <us-gaap:PreferredStockSharesAuthorized contextRef="i_2020-03-31" decimals="INF" id="c60343084" unitRef="xbrli-shares">1000000</us-gaap:PreferredStockSharesAuthorized>
  <us-gaap:PreferredStockSharesAuthorized contextRef="i_2019-12-31" decimals="INF" id="c60343085" unitRef="xbrli-shares">1000000</us-gaap:PreferredStockSharesAuthorized>
  <us-gaap:PreferredStockSharesIssued contextRef="i_2020-03-31" decimals="INF" id="c60343086" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesIssued>
  <us-gaap:PreferredStockSharesIssued contextRef="i_2019-12-31" decimals="INF" id="c60343087" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesIssued>
  <us-gaap:PreferredStockSharesOutstanding contextRef="i_2020-03-31" decimals="INF" id="c60343088" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesOutstanding>
  <us-gaap:PreferredStockSharesOutstanding contextRef="i_2019-12-31" decimals="INF" id="c60343089" unitRef="xbrli-shares">0</us-gaap:PreferredStockSharesOutstanding>
  <us-gaap:PreferredStockValue contextRef="i_2020-03-31" decimals="-3" id="c60343080" unitRef="iso4217-usd">0</us-gaap:PreferredStockValue>
  <us-gaap:PreferredStockValue contextRef="i_2019-12-31" decimals="-3" id="c60343081" unitRef="iso4217-usd">0</us-gaap:PreferredStockValue>
  <us-gaap:PrepaidExpenseCurrent contextRef="i_2020-03-31" decimals="-3" id="c60343028" unitRef="iso4217-usd">2750000</us-gaap:PrepaidExpenseCurrent>
  <us-gaap:PrepaidExpenseCurrent contextRef="i_2019-12-31" decimals="-3" id="c60343029" unitRef="iso4217-usd">2304000</us-gaap:PrepaidExpenseCurrent>
  <us-gaap:ProceedsFromLinesOfCredit contextRef="d_2020-04-01_2020-04-30_CreditFacilityAxis-RevolvingCreditFacilityMember_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_SubsequentEventTypeAxis-SubsequentEventMember" decimals="-5" id="c60343657" unitRef="iso4217-usd">5500000</us-gaap:ProceedsFromLinesOfCredit>
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343272" unitRef="iso4217-usd">13000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
  <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="d_2019-01-01_2019-03-31" id="c60343273" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c60343423" unitRef="iso4217-usd">415000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:ProceedsFromStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c60343426" unitRef="iso4217-usd">285000</us-gaap:ProceedsFromStockOptionsExercised>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2020-03-31" decimals="-3" id="c60343034" unitRef="iso4217-usd">117292000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentGross contextRef="i_2019-12-31" decimals="-3" id="c60343035" unitRef="iso4217-usd">116089000</us-gaap:PropertyPlantAndEquipmentGross>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2020-03-31" decimals="-3" id="c60343038" unitRef="iso4217-usd">56230000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:PropertyPlantAndEquipmentNet contextRef="i_2019-12-31" decimals="-3" id="c60343039" unitRef="iso4217-usd">56739000</us-gaap:PropertyPlantAndEquipmentNet>
  <us-gaap:ProvisionForDoubtfulAccounts contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343404" unitRef="iso4217-usd">60000</us-gaap:ProvisionForDoubtfulAccounts>
  <us-gaap:RepaymentsOfLinesOfCredit contextRef="d_2020-01-01_2020-03-31" id="c60343277" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:RepaymentsOfLinesOfCredit contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343278" unitRef="iso4217-usd">3000000</us-gaap:RepaymentsOfLinesOfCredit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2020-03-31" decimals="-3" id="c60343102" unitRef="iso4217-usd">135443000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="i_2019-12-31" decimals="-3" id="c60343104" unitRef="iso4217-usd">131552000</us-gaap:RetainedEarningsAccumulatedDeficit>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343120" unitRef="iso4217-usd">48277000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343121" unitRef="iso4217-usd">47328000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_ProductOrServiceAxis-ProductMember" decimals="-3" id="c60343355" unitRef="iso4217-usd">47029000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_ProductOrServiceAxis-ProductMember" decimals="-3" id="c60343356" unitRef="iso4217-usd">46410000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c60343357" unitRef="iso4217-usd">677000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_ProductOrServiceAxis-ToolingAndMachineryMember" decimals="-3" id="c60343358" unitRef="iso4217-usd">645000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c60343359" unitRef="iso4217-usd">571000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_ProductOrServiceAxis-EngineeringAndDevelopmentMember" decimals="-3" id="c60343360" unitRef="iso4217-usd">273000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-MedicalMember" decimals="-3" id="c60343557" unitRef="iso4217-usd">33688000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-MedicalMember" decimals="-3" id="c60343559" unitRef="iso4217-usd">28944000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c60343561" unitRef="iso4217-usd">4602000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-AutomotiveMember" decimals="-3" id="c60343563" unitRef="iso4217-usd">5738000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c60343565" unitRef="iso4217-usd">3439000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-ConsumerMember" decimals="-3" id="c60343567" unitRef="iso4217-usd">4424000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c60343569" unitRef="iso4217-usd">2711000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-AerospaceDefenseMember" decimals="-3" id="c60343571" unitRef="iso4217-usd">3532000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c60343573" unitRef="iso4217-usd">1917000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-IndustrialMember" decimals="-3" id="c60343575" unitRef="iso4217-usd">2485000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2020-01-01_2020-03-31_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c60343577" unitRef="iso4217-usd">1920000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax contextRef="d_2019-01-01_2019-03-31_MajorCustomersAxis-ElectronicsMember" decimals="-3" id="c60343579" unitRef="iso4217-usd">2204000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
  <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539156">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Revenue Recognition&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&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 27pt; font-size: 10pt"&gt;&lt;div style="display: inline; color: windowtext"&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: inherit;"&gt;606&lt;/div&gt; which include (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&lt;/div&gt;) identifying the contract with a customer, (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2&lt;/div&gt;) identifying separate performance obligations within the contract, (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3&lt;/div&gt;) determining the transaction price, (&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4&lt;/div&gt;) allocating the transaction price to the performance obligations, and (&lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&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: inherit;"&gt;not&lt;/div&gt; as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&amp;#x2019;s &lt;/div&gt;promise to transfer the good and are expensed when revenue is recognized.&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&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-style: italic;"&gt;Disaggregated Revenue&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-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&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):&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-left: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 31,&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid"&gt;Net sales of:&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;2020&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;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&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: inherit;"&gt;47,029&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: inherit;"&gt;46,410&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;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: inherit;"&gt;677&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: inherit;"&gt;645&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;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: inherit;"&gt;571&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: inherit;"&gt;273&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 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: inherit;"&gt;48,277&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: inherit;"&gt;47,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;/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=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; color: Red; 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-style: italic;"&gt;Contract balances&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;Timing of revenue recognition &lt;div style="display: inline; font-style: italic; font: inherit;"&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=" 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 table presents opening and closing balances of contract liabilities for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; months ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; (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=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended&lt;br /&gt; March 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;2020&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;/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: inherit;"&gt;2,574&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: inherit;"&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;/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 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: inherit;"&gt;525&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: inherit;"&gt;991&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;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: inherit;"&gt;(667&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: inherit;"&gt;(526&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;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: inherit;"&gt;2,432&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: inherit;"&gt;2,972&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; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&gt;Revenue recognized during the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; months ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; from amounts included in deferred revenue at the beginning of the period was approximately &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$517&lt;/div&gt; thousand and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$497&lt;/div&gt; thousand, respectively.&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt; &lt;!-- Field: Page; Sequence: 8; Value: 1 --&gt;   &lt;div style=" margin: 0pt 0; font-size: 10pt"&gt;&lt;div style="display: inline; font-style: italic;"&gt;&lt;/div&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"&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. The Company considered the guidance in ASC &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;326&lt;/div&gt; upon adoption and in the current period and determined that an allowance for credit losses was &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; necessary on the unbilled receivables balance due to there being &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;no&lt;/div&gt; history of credit losses. The following table presents opening and closing balances of contract assets for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; months ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; (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=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended&lt;br /&gt; March 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;2020&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;/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: inherit;"&gt;72&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: inherit;"&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;/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: inherit;"&gt;522&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: inherit;"&gt;85&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: inherit;"&gt;(404&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: inherit;"&gt;(106&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: inherit;"&gt;190&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: inherit;"&gt;44&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:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock contextRef="d_2020-01-01_2020-03-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: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;March 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;2020&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;/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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; text-align: center"&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;Cash paid for:&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;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: 70%; font-size: 10pt; text-align: left"&gt;Interest&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: inherit;"&gt;12&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: inherit;"&gt;47&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;Income taxes, net of refunds&lt;/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: inherit;"&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;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;(156&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"&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;Non-cash investing and financing activities:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;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; text-align: left"&gt;Capital additions accrued but not yet paid&lt;/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: inherit;"&gt;232&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: inherit;"&gt;108&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;Recognition of lease asset and 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;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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;$&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,831&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:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock>
  <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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;Tradename&lt;br /&gt; &amp;amp; Brand&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;Non-&lt;br /&gt; Compete&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;Customer&lt;br /&gt; List&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;Total&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt"&gt;Estimated useful life&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;10 years&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;5 years&lt;/td&gt; &lt;td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid"&gt;20 years&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"&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: 40%; 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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&gt;(80&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: inherit;"&gt;(200&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: inherit;"&gt;(2,443&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: inherit;"&gt;(2,723&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: inherit;"&gt;287&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: inherit;"&gt;262&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: inherit;"&gt;20,112&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: inherit;"&gt;20,661&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:ScheduleOfInventoryCurrentTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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;March 31,&lt;br /&gt; 2020&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;December 31,&lt;br /&gt; 2019&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: inherit;"&gt;11,471&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: inherit;"&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;/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: inherit;"&gt;2,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: inherit;"&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;/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: inherit;"&gt;5,976&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: inherit;"&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;/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: 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: inherit;"&gt;20,242&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: inherit;"&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;/tr&gt; &lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
  <us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended March 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="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;2019 &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 700"&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;(1)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Market&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;Net Sales&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="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&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;Net Sales&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="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&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"&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"&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"&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"&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: 40%; font-size: 10pt"&gt;Medical&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: inherit;"&gt;33,688&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: inherit;"&gt;69.8&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;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28,944&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: inherit;"&gt;61.2&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"&gt;Automotive&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,602&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: inherit;"&gt;9.5&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: inherit;"&gt;5,738&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: inherit;"&gt;12.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: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Consumer&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,439&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: inherit;"&gt;7.1&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: inherit;"&gt;4,424&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: inherit;"&gt;9.3&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;Aerospace &amp;amp; Defense&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,711&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: inherit;"&gt;5.6&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: inherit;"&gt;3,532&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: inherit;"&gt;7.5&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"&gt;Industrial&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&gt;4.0&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: inherit;"&gt;2,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: inherit;"&gt;5.3&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; padding-bottom: 1pt"&gt;Electronics&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: inherit;"&gt;1,920&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="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&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: inherit;"&gt;4.0&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: inherit;"&gt;2,204&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="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&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: inherit;"&gt;4.7&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: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;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: inherit;"&gt;48,277&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="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: 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: inherit;"&gt;100.0&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: inherit;"&gt;47,327&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="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: 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: inherit;"&gt;100.0&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:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock>
  <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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;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 Average&lt;br /&gt; Award Date&lt;br /&gt; 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, 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;&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: inherit;"&gt;113,866&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: inherit;"&gt;28.36&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: inherit;"&gt;42,733&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: inherit;"&gt;49.96&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;Shares vested&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: inherit;"&gt;(28,244&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: inherit;"&gt;27.02&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 at March 31, 2020&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: inherit;"&gt;128,355&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: inherit;"&gt;31.58&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_2020-01-01_2020-03-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-left: 36px; 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 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;br /&gt; &lt;/div&gt; (in years)&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;br /&gt; &lt;/div&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="width: 40%; font-size: 10pt"&gt;Outstanding at December 31, 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;&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: inherit;"&gt;105,614&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: inherit;"&gt;25.34&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: inherit;"&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="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: inherit;"&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;/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: inherit;"&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: inherit;"&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: inherit;"&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: inherit;"&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: inherit;"&gt;(19,586&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;$&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: inherit;"&gt;21.20&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: inherit;"&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: inherit;"&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 at March 31, 2020&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: inherit;"&gt;86,028&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: inherit;"&gt;26.28&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: inherit;"&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: inherit;"&gt;1,025&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 March 31, 2020&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: inherit;"&gt;65,742&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: inherit;"&gt;23.04&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: inherit;"&gt;5.00&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: inherit;"&gt;989&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="text-indent: -10pt; padding-left: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;Vested and expected to vest at March 31, 2020&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: inherit;"&gt;86,028&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: inherit;"&gt;26.28&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: inherit;"&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: inherit;"&gt;1,025&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:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock contextRef="d_2020-01-01_2020-03-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-left: 36px; 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"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center"&gt;Three Months Ended&lt;/td&gt; &lt;/tr&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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;March 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;2020&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;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="width: 70%; font-size: 10pt"&gt;Basic weighted average common shares outstanding&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: inherit;"&gt;7,457&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: inherit;"&gt;7,402&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 RSUs&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: inherit;"&gt;81&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: inherit;"&gt;64&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;Diluted weighted average common shares outstanding&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: inherit;"&gt;7,538&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: inherit;"&gt;7,466&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_2020-01-01_2020-03-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-left: 36px; min-; min-width: 700px;"&gt; &lt;tr style="vertical-align: bottom; background-color: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Remainder of:&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="3" style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom; background-color: White"&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;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;943&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="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: inherit;"&gt;1,257&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: inherit;"&gt;1,257&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;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: inherit;"&gt;1,172&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;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: inherit;"&gt;1,164&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; 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: inherit;"&gt;14,868&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: 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: inherit;"&gt;20,661&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:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
  <us-gaap:SegmentReportingDisclosureTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539177">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Segment Reporting&lt;/div&gt;&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; text-indent: 0in"&gt;The Company consists of a single operating and reportable segment.&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;Revenues from customers outside of the United States are &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; material. &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;/div&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;No&lt;/div&gt; &lt;/div&gt;customer comprised more than &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;10%&lt;/div&gt; of the Company&amp;#x2019;s consolidated revenues for both the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019.&lt;/div&gt; All of the Company&amp;#x2019;s assets are located in the United States.&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 style="display: inline; color: windowtext"&gt;The Company&amp;#x2019;s products are primarily sold to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Net sales by market for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt;-month periods ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2020 &lt;/div&gt;and &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2019&lt;/div&gt; are as follows (in thousands)&lt;/div&gt;:&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"&gt;&lt;/div&gt; &lt;div&gt; &lt;table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Three Months Ended March 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="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;2020&lt;/td&gt; &lt;td style="font-size: 10pt; font-weight: bold; font-style: normal; padding-bottom: 1pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="7" style="font-size: 10pt; font-weight: bold; font-style: normal; text-align: center; border-bottom: Black 1pt solid"&gt;2019 &lt;div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 700"&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;(1)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr style="vertical-align: bottom"&gt; &lt;td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;Market&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;Net Sales&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="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&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;Net Sales&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="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid"&gt;%&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"&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"&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"&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"&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: 40%; font-size: 10pt"&gt;Medical&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: inherit;"&gt;33,688&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: inherit;"&gt;69.8&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;$&lt;/td&gt; &lt;td style="width: 12%; font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;28,944&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: inherit;"&gt;61.2&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"&gt;Automotive&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;4,602&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: inherit;"&gt;9.5&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: inherit;"&gt;5,738&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: inherit;"&gt;12.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: rgb(204,238,255)"&gt; &lt;td style="font-size: 10pt"&gt;Consumer&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;3,439&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: inherit;"&gt;7.1&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: inherit;"&gt;4,424&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: inherit;"&gt;9.3&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;Aerospace &amp;amp; Defense&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;2,711&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: inherit;"&gt;5.6&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: inherit;"&gt;3,532&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: inherit;"&gt;7.5&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"&gt;Industrial&lt;/td&gt; &lt;td style="font-size: 10pt"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: left"&gt;&amp;nbsp;&lt;/td&gt; &lt;td style="font-size: 10pt; text-align: right"&gt;&lt;div style="display: inline; font-style: italic; font: inherit;"&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: inherit;"&gt;4.0&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: inherit;"&gt;2,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: inherit;"&gt;5.3&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; padding-bottom: 1pt"&gt;Electronics&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: inherit;"&gt;1,920&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="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&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: inherit;"&gt;4.0&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: inherit;"&gt;2,204&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="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold"&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: inherit;"&gt;4.7&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: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt"&gt;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: inherit;"&gt;48,277&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="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: 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: inherit;"&gt;100.0&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: inherit;"&gt;47,327&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="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: 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: inherit;"&gt;100.0&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 27pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"&gt;&lt;/div&gt; &lt;div style=" margin: 0pt 0 0pt 27pt; color: Red; 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: 0.5in"&gt;&lt;/td&gt; &lt;td style="width: 0.25in"&gt;&lt;div style="display: inline; font-size: 8pt"&gt;&lt;div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;1&lt;/div&gt;)&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;td style="padding-right: 5.4pt"&gt;&lt;div style="display: inline; font-size: 8pt"&gt;Certain amounts for the &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;three&lt;/div&gt; months ended &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; March 31, 2019 &lt;/div&gt;were reclassified between markets to conform to the current period presentation.&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343126" unitRef="iso4217-usd">7752000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343127" unitRef="iso4217-usd">7244000</us-gaap:SellingGeneralAndAdministrativeExpense>
  <us-gaap:ShareBasedCompensation contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343244" unitRef="iso4217-usd">537000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensation contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343245" unitRef="iso4217-usd">294000</us-gaap:ShareBasedCompensation>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343481" unitRef="xbrli-shares">42733</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343482" unitRef="iso4217-usd-per-xbrli-shares">49.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343479" unitRef="xbrli-shares">113866</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber contextRef="i_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343485" unitRef="xbrli-shares">128355</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343480" unitRef="iso4217-usd-per-xbrli-shares">28.36</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue contextRef="i_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343486" unitRef="iso4217-usd-per-xbrli-shares">31.58</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343483" unitRef="xbrli-shares">28244</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343484" unitRef="iso4217-usd-per-xbrli-shares">27.02</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343471" unitRef="xbrli-shares">65742</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343472" unitRef="iso4217-usd-per-xbrli-shares">23.04</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c60343422" unitRef="iso4217-usd">530000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c60343425" unitRef="iso4217-usd">274000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c60343459" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c60343470" unitRef="iso4217-usd">1025000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343455" unitRef="xbrli-shares">105614</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343467" unitRef="xbrli-shares">86028</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2019-12-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343456" unitRef="iso4217-usd-per-xbrli-shares">25.34</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343468" unitRef="iso4217-usd-per-xbrli-shares">26.28</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343476" unitRef="iso4217-usd-per-xbrli-shares">26.28</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c60343478" unitRef="iso4217-usd">1025000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
  <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343475" unitRef="xbrli-shares">86028</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343464" unitRef="iso4217-usd-per-xbrli-shares">21.20</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
  <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c60343460" unitRef="iso4217-usd-per-xbrli-shares" xs:nil="true"/>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 contextRef="i_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="-3" id="c60343474" unitRef="iso4217-usd">989000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c60343473">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c60343469">P5Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
  <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" id="c60343477">P5Y255D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
  <us-gaap:SharesOutstanding contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343152" unitRef="xbrli-shares">7446000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343156" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343187" unitRef="xbrli-shares">7483000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343191" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343194" unitRef="xbrli-shares">7385000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343198" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343229" unitRef="xbrli-shares">7414000</us-gaap:SharesOutstanding>
  <us-gaap:SharesOutstanding contextRef="i_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343233" unitRef="xbrli-shares">30000</us-gaap:SharesOutstanding>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343440" unitRef="xbrli-shares">11195</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" decimals="INF" id="c60343441" unitRef="xbrli-shares">8132</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343173" unitRef="xbrli-shares">-11000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343177" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343215" unitRef="xbrli-shares">-8000</us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation>
  <us-gaap:SharesPaidForTaxWithholdingForShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343219" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:ShortTermLeaseCost contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343509" unitRef="iso4217-usd">7000</us-gaap:ShortTermLeaseCost>
  <us-gaap:ShortTermLeaseCost contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343510" unitRef="iso4217-usd">6000</us-gaap:ShortTermLeaseCost>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343159" unitRef="xbrli-shares">28000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343163" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343201" unitRef="xbrli-shares">20000</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343205" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_AwardTypeAxis-EmployeeAndNonemployeeStockOptionMember" decimals="INF" id="c60343463" unitRef="xbrli-shares">19586</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343166" unitRef="xbrli-shares">20000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343170" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343208" unitRef="xbrli-shares">17000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343212" unitRef="xbrli-shares" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2020-02-24_2020-02-24_PlanNameAxis-The2003IncentivePlanMember_RelatedPartyTransactionsByRelatedPartyAxis-ChairmanChiefExecutiveOfficerAndPresidentMember_StatementEquityComponentsAxis-CommonStockMember" decimals="-3" id="c60343432" unitRef="iso4217-usd">400000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c60343160" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343161" unitRef="iso4217-usd">537000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c60343162" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343164" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343165" unitRef="iso4217-usd">537000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c60343202" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343203" unitRef="iso4217-usd">294000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c60343204" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343206" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343207" unitRef="iso4217-usd">294000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343167" unitRef="iso4217-usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343168" unitRef="iso4217-usd">415000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c60343169" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2020-01-01_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343171" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343172" unitRef="iso4217-usd">416000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" id="c60343209" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343210" unitRef="iso4217-usd">285000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" id="c60343211" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" id="c60343213" unitRef="iso4217-usd" xs:nil="true"/>
  <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343214" unitRef="iso4217-usd">285000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
  <us-gaap:StockholdersEquity contextRef="i_2020-03-31" decimals="-3" id="c60343114" unitRef="iso4217-usd">166275000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31" decimals="-3" id="c60343116" unitRef="iso4217-usd">161991000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343153" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343154" unitRef="iso4217-usd">30952000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c60343155" unitRef="iso4217-usd">131552000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343157" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343188" unitRef="iso4217-usd">75000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343189" unitRef="iso4217-usd">31344000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c60343190" unitRef="iso4217-usd">135443000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2020-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343192" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343195" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343196" unitRef="iso4217-usd">29168000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c60343197" unitRef="iso4217-usd">111802000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343199" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2018-12-31" decimals="-3" id="c60343200" unitRef="iso4217-usd">140457000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-CommonStockOutstandingMember" decimals="-3" id="c60343230" unitRef="iso4217-usd">74000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" decimals="-3" id="c60343231" unitRef="iso4217-usd">29476000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-RetainedEarningsMember" decimals="-3" id="c60343232" unitRef="iso4217-usd">115536000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31_StatementEquityComponentsAxis-TreasuryStockMember" decimals="-3" id="c60343234" unitRef="iso4217-usd">-587000</us-gaap:StockholdersEquity>
  <us-gaap:StockholdersEquity contextRef="i_2019-03-31" decimals="-3" id="c60343235" unitRef="iso4217-usd">144499000</us-gaap:StockholdersEquity>
  <us-gaap:SubsequentEventsTextBlock contextRef="d_2020-01-01_2020-03-31" id="s1539184">&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: 27pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;(&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;14&lt;/div&gt;)&lt;/div&gt;&lt;/td&gt; &lt;td&gt;&lt;div style="display: inline; font-size: 10pt"&gt;&lt;div style="display: inline; font-weight: bold;"&gt;Subsequent Events&lt;/div&gt;&lt;/div&gt;&lt;/td&gt; &lt;/tr&gt;  &lt;/table&gt; &lt;div style=" margin: 0pt 0 0pt 0.25in; font-size: 10pt"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white"&gt;&lt;div style="display: inline; color: #212529"&gt;The Company&amp;#x2019;s operations expose it to risks associated with the COVID-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19&lt;/div&gt; pandemic. Although the COVID-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19&lt;/div&gt; pandemic did &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; materially impact the Company&amp;#x2019;s &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;first&lt;/div&gt; quarter results, it has since more significantly impacted the Company&amp;#x2019;s operations. While all of the Company&amp;#x2019;s factories are deemed essential, &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;not&lt;/div&gt; all of its customers&amp;#x2019; operations are essential and, therefore, demand for product, especially in the automotive and consumer markets, has been negatively impacted. Partially mitigating this are increased orders from certain customers in the medical market. The COVID-&lt;div style="display: inline; font-style: italic; font: inherit;"&gt;19&lt;/div&gt; pandemic has also impacted the Company&amp;#x2019;s cost of manufacturing its goods, including higher labor costs, maintenance costs and manufacturing inefficiencies due to employee absenteeism and significantly enhanced cleaning and sterilization. With regard to the Company&amp;#x2019;s supply chain, there has thus far been minimal disruption in the availability of raw materials, as most of the Company&amp;#x2019;s major suppliers have also been deemed to be essential businesses.&lt;/div&gt; &lt;div style="display: inline; color: black"&gt;However, to mitigate risk, the Company has increased its purchases of raw materials to establish safety stock. &lt;/div&gt;&lt;/div&gt; &lt;div style=" color: #212529; font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white"&gt;&amp;nbsp;&lt;/div&gt; &lt;div style=" color: #212529; font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white"&gt;The Company has been notified by several customers that they would be extending payment terms. The Company anticipates that these extended payment terms will be short-term in nature, but they &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; may &lt;/div&gt;continue for a longer duration. In the beginning of &lt;div style="display: inline; font-style: italic; font: inherit;"&gt; April, &lt;/div&gt;the Company drew down &lt;div style="display: inline; font-style: italic; font: inherit;"&gt;$5.5&lt;/div&gt; million from its revolving credit facility to maintain cash reserves in the event it experiences a substantial shut down of operations, further or extended increase in manufacturing costs or significant exposure to its ability to timely collect its receivables.&lt;/div&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
  <us-gaap:TreasuryStockShares contextRef="i_2020-03-31" decimals="INF" id="c60343110" unitRef="xbrli-shares">29559</us-gaap:TreasuryStockShares>
  <us-gaap:TreasuryStockShares contextRef="i_2019-12-31" decimals="INF" id="c60343112" unitRef="xbrli-shares">29559</us-gaap:TreasuryStockShares>
  <us-gaap:TreasuryStockValue contextRef="i_2020-03-31" decimals="-3" id="c60343106" unitRef="iso4217-usd">587000</us-gaap:TreasuryStockValue>
  <us-gaap:TreasuryStockValue contextRef="i_2019-12-31" decimals="-3" id="c60343108" unitRef="iso4217-usd">587000</us-gaap:TreasuryStockValue>
  <us-gaap:VariableLeaseCost contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343507" unitRef="iso4217-usd">57000</us-gaap:VariableLeaseCost>
  <us-gaap:VariableLeaseCost contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343508" unitRef="iso4217-usd">57000</us-gaap:VariableLeaseCost>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343150" unitRef="xbrli-shares">7538000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343151" unitRef="xbrli-shares">7466000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2020-01-01_2020-03-31" decimals="-3" id="c60343148" unitRef="xbrli-shares">7457000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="d_2019-01-01_2019-03-31" decimals="-3" id="c60343149" unitRef="xbrli-shares">7402000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
  <link:footnoteLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:loc xlink:href="#c60343563" xlink:label="c60343563" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343563" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343584" xlink:label="c60343584" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343584" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343576" xlink:label="c60343576" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343576" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343564" xlink:label="c60343564" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343564" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343575" xlink:label="c60343575" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343575" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343580" xlink:label="c60343580" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343580" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343572" xlink:label="c60343572" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343572" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343560" xlink:label="c60343560" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343560" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343571" xlink:label="c60343571" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343571" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343559" xlink:label="c60343559" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343559" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343567" xlink:label="c60343567" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343567" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343568" xlink:label="c60343568" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343568" xlink:to="f-42-1" xlink:type="arc"/>
    <link:loc xlink:href="#c60343579" xlink:label="c60343579" xlink:type="locator"/>
    <link:footnoteArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" xlink:from="c60343579" xlink:to="f-42-1" xlink:type="arc"/>
    <link:footnote xlink:label="f-42-1" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US">Certain amounts for the three months ended March 31, 2019 were reclassified between markets to conform to the current period presentation.</link:footnote>
  </link:footnoteLink>
  <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_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_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-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-31_AwardTypeAxis-StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </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-03-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
      </xbrli:segment>
    </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-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2019-01-01_2019-03-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-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-31_AwardTypeAxis-StockCompensationPlanMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:StockCompensationPlanMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
        <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-01-01_2020-03-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>2020-01-01</xbrli:startDate>
      <xbrli:endDate>2020-03-31</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-02-24_2020-02-24_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>2020-02-24</xbrli:startDate>
      <xbrli:endDate>2020-02-24</xbrli:endDate>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="d_2020-04-01_2020-04-30_CreditFacilityAxis-RevolvingCreditFacilityMember_DebtInstrumentAxis-AmendedAndRestatedCreditAgreementMember_LineOfCreditFacilityAxis-SubsidiaryGuarantorsMember_SubsequentEventTypeAxis-SubsequentEventMember">
    <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>
        <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:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
      </xbrli:segment>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:startDate>2020-04-01</xbrli:startDate>
      <xbrli:endDate>2020-04-30</xbrli:endDate>
    </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_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-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2019-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-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-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2019-03-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-03-31</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-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_RestatementAxis-RestatementAdjustmentMember">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
      <xbrli:segment>
        <xbrldi:explicitMember dimension="srt:RestatementAxis">srt:RestatementAdjustmentMember</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_2020-03-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-03-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>2020-03-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
  <xbrli:context id="i_2020-05-01">
    <xbrli:entity>
      <xbrli:identifier scheme="http://www.sec.gov/CIK">0000914156</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2020-05-01</xbrli:instant>
    </xbrli:period>
  </xbrli:context>
</xbrli:xbrl>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>6
<FILENAME>ufpt-20200331.xsd
<DESCRIPTION>XBRL SCHEMA FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:49PM UTC 2020-05-07--><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:country="http://xbrl.sec.gov/country/2020-01-31" xmlns:currency="http://xbrl.sec.gov/currency/2020-01-31" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2020-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/2020-01-31" xmlns:srt="http://fasb.org/srt/2020-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:ufpt="http://www.ufpt.com/20200331" xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31" xmlns:us-types="http://fasb.org/us-types/2020-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/20200331">
  <xsd:import namespace="http://xbrl.sec.gov/sic/2020-01-31" schemaLocation="https://xbrl.sec.gov/sic/2020/sic-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/exch/2020-01-31" schemaLocation="https://xbrl.sec.gov/exch/2020/exch-2020-01-31.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://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xsd:import namespace="http://fasb.org/us-gaap/2020-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/country/2020-01-31" schemaLocation="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd"/>
  <xsd:import namespace="http://fasb.org/us-types/2020-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2020/elts/us-types-2020-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/stpr/2018-01-31" schemaLocation="https://xbrl.sec.gov/stpr/2018/stpr-2018-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.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/currency/2020-01-31" schemaLocation="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd"/>
  <xsd:import namespace="http://fasb.org/srt-types/2020-01-31" schemaLocation="http://xbrl.fasb.org/srt/2020/elts/srt-types-2020-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://fasb.org/srt/2020-01-31" schemaLocation="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="ufpt-20200331_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-20200331_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-20200331_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-20200331_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/20200331/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-condensed-consolidated-balance-sheets-current-period-unaudited" roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">001 - Statement - Condensed Consolidated Balance Sheets (Current Period 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-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (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-condensed-consolidated-statements-of-income-unaudited" roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-income-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">003 - Statement - Condensed Consolidated Statements of Income (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-condensed-consolidated-statements-of-stockholders-equity-unaudited" roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">004 - Statement - Condensed Consolidated Statements of Stockholders' Equity (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-condensed-consolidated-statements-of-cash-flows-unaudited" roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">005 - Statement - Condensed Consolidated Statements of Cash Flows (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-1-basis-of-presentation" roleURI="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">006 - Disclosure - Note 1 - Basis of Presentation</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/20200331/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/20200331/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-allowance-for-credit-losses" roleURI="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">009 - Disclosure - Note 4 - Allowance for Credit Losses</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-fair-value-of-financial-instruments" roleURI="http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">010 - Disclosure - Note 5 - 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-6-sharebased-compensation" roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">011 - Disclosure - Note 6 - Share-based Compensation</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-inventories" roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">012 - Disclosure - Note 7 - 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-8-leases" roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">013 - Disclosure - Note 8 - 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-9-income-per-share" roleURI="http://www.ufpt.com/20200331/role/statement-note-9-income-per-share">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">014 - Disclosure - Note 9 - 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-10-segment-data" roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">015 - Disclosure - Note 10 - 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-11-other-intangible-assets-" roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">016 - Disclosure - Note 11 - 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-12-income-taxes" roleURI="http://www.ufpt.com/20200331/role/statement-note-12-income-taxes">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">017 - Disclosure - Note 12 - Income Taxes</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-indebtedness" roleURI="http://www.ufpt.com/20200331/role/statement-note-13-indebtedness">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">018 - Disclosure - Note 13 - 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-14-subsequent-events" roleURI="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">019 - Disclosure - Note 14 - Subsequent Events</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/20200331/role/statement-significant-accounting-policies-policies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">020 - 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-2-revenue-recognition-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">021 - 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/20200331/role/statement-note-3-supplemental-cash-flow-information-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">022 - 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-allowance-for-credit-losses-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">023 - Disclosure - Note 4 - Allowance for Credit Losses (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-fair-value-of-financial-instruments-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">024 - Disclosure - Note 5 - 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-6-sharebased-compensation-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">025 - Disclosure - Note 6 - Share-based Compensation (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-inventories-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">026 - Disclosure - Note 7 - 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-8-leases-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">027 - Disclosure - Note 8 - 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-9-income-per-share-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-9-income-per-share-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">028 - Disclosure - Note 9 - 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-10-segment-data-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">029 - Disclosure - Note 10 - 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-11-other-intangible-assets-tables" roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">030 - Disclosure - Note 11 - 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-1-basis-of-presentation-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">031 - Disclosure - Note 1 - Basis of Presentation (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-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">032 - 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/20200331/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">033 - 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/20200331/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">034 - 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-schedule-of-supplemental-cash-flow-information-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">035 - 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-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">036 - Disclosure - Note 4 - Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (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-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-5-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">037 - Disclosure - Note 5 - 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-6-sharebased-compensation-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">038 - Disclosure - Note 6 - Share-based Compensation (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-sharebased-compensation-compensation-cost-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-compensation-cost-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">039 - Disclosure - Note 6 - Share-based Compensation - 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-6-sharebased-compensation-summary-of-stock-option-activity-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">040 - Disclosure - Note 6 - Share-based Compensation - 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-6-sharebased-compensation-restricted-stock-unit-activity-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">041 - Disclosure - Note 6 - Share-based Compensation - 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-7-inventories-summary-of-inventory-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories-summary-of-inventory-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">042 - Disclosure - Note 7 - 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-8-leases-lease-cost-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases-lease-cost-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">043 - Disclosure - Note 8 - 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-8-leases-aggregate-future-lease-payments-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases-aggregate-future-lease-payments-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">044 - Disclosure - Note 8 - 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-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">045 - Disclosure - Note 9 - 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-10-segment-data-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">046 - Disclosure - Note 10 - Segment Data (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-segment-data-net-sales-by-market-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-net-sales-by-market-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">047 - Disclosure - Note 10 - 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-11-other-intangible-assets-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">048 - Disclosure - Note 11 - 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-11-other-intangible-assets-definitelived-intangible-assets-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-definitelived-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">049 - Disclosure - Note 11 - 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-11-other-intangible-assets-future-amortization-of-intangible-assets-details" roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">050 - Disclosure - Note 11 - 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-12-income-taxes-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-12-income-taxes-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">051 - Disclosure - Note 12 - Income Taxes (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-indebtedness-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-13-indebtedness-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">052 - Disclosure - Note 13 - 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-14-subsequent-events-details-textual" roleURI="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">053 - Disclosure - Note 14 - Subsequent Events (Details Textual)</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 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 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 abstract="true" id="ufpt_DeferredRevenueMember" name="DeferredRevenueMember" 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 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 abstract="true" id="ufpt_EngineeringAndDevelopmentMember" name="EngineeringAndDevelopmentMember" 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 id="ufpt_InitialRecognitionOfLeaseAssetAndLiability" name="InitialRecognitionOfLeaseAssetAndLiability" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" 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_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_NumberOfMajorCustomers" name="NumberOfMajorCustomers" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" 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_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" name="RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="ufpt_RevisionsPolicyPolicyTextBlock" name="RevisionsPolicyPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" 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_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" name="SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" 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 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-10-segment-data-net-sales-by-market-details" name="statement-statement-note-10-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-10-segment-data-tables" name="statement-statement-note-10-segment-data-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" name="statement-statement-note-11-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-11-other-intangible-assets-future-amortization-of-intangible-assets-details" name="statement-statement-note-11-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-11-other-intangible-assets-tables" name="statement-statement-note-11-other-intangible-assets-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-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" name="statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-4-allowance-for-credit-losses-tables" name="statement-statement-note-4-allowance-for-credit-losses-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-5-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" name="statement-statement-note-5-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-5-fair-value-of-financial-instruments-tables" name="statement-statement-note-5-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-6-sharebased-compensation-compensation-cost-details" name="statement-statement-note-6-sharebased-compensation-compensation-cost-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" name="statement-statement-note-6-sharebased-compensation-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-6-sharebased-compensation-summary-of-stock-option-activity-details" name="statement-statement-note-6-sharebased-compensation-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-6-sharebased-compensation-tables" name="statement-statement-note-6-sharebased-compensation-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-7-inventories-summary-of-inventory-details" name="statement-statement-note-7-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-7-inventories-tables" name="statement-statement-note-7-inventories-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-8-leases-aggregate-future-lease-payments-details" name="statement-statement-note-8-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-8-leases-lease-cost-details" name="statement-statement-note-8-leases-lease-cost-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-8-leases-tables" name="statement-statement-note-8-leases-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-9-income-per-share-tables" name="statement-statement-note-9-income-per-share-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="ufpt_statement-statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" name="statement-statement-note-9-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-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>7
<FILENAME>ufpt-20200331_cal.xml
<DESCRIPTION>XBRL CALCULATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:49PM UTC 2020-05-07--><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/20200331/role/statement-note-8-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20200331.xsd#statement-note-8-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-leases-aggregate-future-lease-payments-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" 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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" 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/20200331/role/statement-note-7-inventories-summary-of-inventory-details" xlink:href="ufpt-20200331.xsd#statement-note-7-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-7-inventories-summary-of-inventory-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_InventoryRawMaterialsNetOfReserves" 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_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" 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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" 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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" 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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" 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/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_CashAndCashEquivalentsAtCarryingValue" 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_AccountsReceivableNetCurrent" 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_PrepaidExpenseCurrent" 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_IncomeTaxesReceivable" 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_PropertyPlantAndEquipmentGross" 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_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" 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_PropertyPlantAndEquipmentNet" 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_Goodwill" 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_DeferredCompensationPlanAssets" 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_OperatingLeaseRightOfUseAsset" 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_AccountsPayableCurrent" 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_AccruedLiabilitiesCurrent" 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_OperatingLeaseLiabilityCurrent" 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_AccruedIncomeTaxesCurrent" 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_LiabilitiesCurrent" 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_DeferredIncomeTaxLiabilitiesNet" 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_DeferredCompensationLiabilityClassifiedNoncurrent" 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_OperatingLeaseLiabilityNoncurrent" 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_OtherLiabilitiesNoncurrent" 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_AdditionalPaidInCapital" 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_RetainedEarningsAccumulatedDeficit" 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_CommonStockValue" 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_TreasuryStockValue" 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_Liabilities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_FiniteLivedIntangibleAssetsGross" 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_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="extended">
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_IncreaseDecreaseInOtherOperatingAssets" 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_IncreaseDecreaseInAccountsPayable" 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_IncreaseDecreaseInAccruedLiabilities" 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_IncreaseDecreaseInAccountsReceivable" 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_IncreaseDecreaseInInventories" 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_IncreaseDecreaseInPrepaidExpense" 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_IncreaseDecreaseInIncomeTaxesReceivable" 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_DepreciationDepletionAndAmortization" 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_GainLossOnSaleOfPropertyPlantEquipment" 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_ShareBasedCompensation" 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_DeferredIncomeTaxExpenseBenefit" 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_IncreaseDecreaseInOtherOperatingLiabilities" 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_NetIncomeLoss" 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_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_RepaymentsOfLinesOfCredit" 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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" 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_NetCashProvidedByUsedInInvestingActivities" 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_NetCashProvidedByUsedInOperatingActivities" 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/20200331/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_RevenueFromContractWithCustomerIncludingAssessedTax" 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_CostOfGoodsAndServicesSold" 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_GrossProfit" 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_SellingGeneralAndAdministrativeExpense" 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_OperatingIncomeLoss" 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_OtherNonoperatingIncomeExpense" 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/20200331/role/statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20200331.xsd#statement-note-9-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/20200331/role/statement-note-9-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>8
<FILENAME>ufpt-20200331_def.xml
<DESCRIPTION>XBRL DEFINITION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:49PM UTC 2020-05-07--><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/20200331/role/statement-note-9-income-per-share" xlink:href="ufpt-20200331.xsd#statement-note-9-income-per-share" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-9-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-8-leases" xlink:href="ufpt-20200331.xsd#statement-note-8-leases" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories" xlink:href="ufpt-20200331.xsd#statement-note-7-inventories" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-7-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-5-fair-value-of-financial-instruments" xlink:href="ufpt-20200331.xsd#statement-note-5-fair-value-of-financial-instruments" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-5-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-4-allowance-for-credit-losses" xlink:href="ufpt-20200331.xsd#statement-note-4-allowance-for-credit-losses" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses" 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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForCreditLossesTextBlock" xlink:label="us-gaap_AllowanceForCreditLossesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AllowanceForCreditLossesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-3-supplemental-cash-flow-information-" xlink:href="ufpt-20200331.xsd#statement-note-3-supplemental-cash-flow-information-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-document-and-entity-information" xlink:href="ufpt-20200331.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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_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_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_EntityEmergingGrowthCompany" 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_EntitySmallBusiness" 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_EntityInteractiveDataCurrent" 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_EntityCommonStockSharesOutstanding" 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_EntityShellCompany" 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_DocumentType" 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_DocumentPeriodEndDate" 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_DocumentFiscalYearFocus" 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_DocumentFiscalPeriodFocus" 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_AmendmentFlag" 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_Security12bTitle" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation" xlink:href="ufpt-20200331.xsd#statement-note-1-basis-of-presentation" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation" 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/2020/elts/srt-2020-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_RestatementAxis" xlink:to="srt_RestatementDomain" 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_RestatementAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RestatementDomain" xlink:to="srt_RestatementAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain-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_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-6-sharebased-compensation" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation" 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-20200331.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" 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_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_StockCompensationPlanMember" 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="ufpt_EmployeeAndNonemployeeStockOptionMember" 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_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="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="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="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/20200331/role/statement-note-10-segment-data" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" 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_ConcentrationRiskByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain-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_ConcentrationRiskByBenchmarkAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain-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="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/20200331/role/statement-note-11-other-intangible-assets-" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-12-income-taxes" xlink:href="ufpt-20200331.xsd#statement-note-12-income-taxes" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-12-income-taxes" 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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-13-indebtedness" xlink:href="ufpt-20200331.xsd#statement-note-13-indebtedness" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-13-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/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-14-subsequent-events" xlink:href="ufpt-20200331.xsd#statement-note-14-subsequent-events" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events" 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-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" 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_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_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" 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_SubsequentEventTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain-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_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="2" 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="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="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="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_SubsequentEventsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-significant-accounting-policies-policies" xlink:href="ufpt-20200331.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_RevisionsPolicyPolicyTextBlock" xlink:label="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_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_NewAccountingPronouncementsPolicyPolicyTextBlock" 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="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition-tables" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:href="ufpt-20200331.xsd#statement-note-3-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-4-allowance-for-credit-losses-tables" xlink:href="ufpt-20200331.xsd#statement-note-4-allowance-for-credit-losses-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments-tables" xlink:href="ufpt-20200331.xsd#statement-note-5-fair-value-of-financial-instruments-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-5-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-6-sharebased-compensation-tables" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories-tables" xlink:href="ufpt-20200331.xsd#statement-note-7-inventories-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-7-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-8-leases-tables" xlink:href="ufpt-20200331.xsd#statement-note-8-leases-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-9-income-per-share-tables" xlink:href="ufpt-20200331.xsd#statement-note-9-income-per-share-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-9-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-10-segment-data-tables" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-11-other-intangible-assets-tables" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-1-basis-of-presentation-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-1-basis-of-presentation-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation-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/2020/elts/srt-2020-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_RestatementAxis" xlink:to="srt_RestatementDomain" 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_RestatementAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RestatementDomain" xlink:to="srt_RestatementAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementDomain-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_OperatingLeaseLiabilityCurrent" 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_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-6-sharebased-compensation-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_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_StockCompensationPlanMember" 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="ufpt_EmployeeAndNonemployeeStockOptionMember" 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_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="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="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="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_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" 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_ProceedsFromStockOptionsExercised" 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_SharesPaidForTaxWithholdingForShareBasedCompensation" 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_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" 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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" 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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-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-20200331.xsd#ufpt_NumberOfMajorCustomers" xlink:label="ufpt_NumberOfMajorCustomers" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" 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_ConcentrationRiskByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain-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_ConcentrationRiskByBenchmarkAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain-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="ufpt_NumberOfMajorCustomers" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-12-income-taxes-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-12-income-taxes-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-12-income-taxes-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-13-indebtedness-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-13-indebtedness-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-13-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/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:label="us-gaap_DebtInstrumentInterestRateEffectivePercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeFairValueOfDerivativeNet" xlink:label="us-gaap_DerivativeFairValueOfDerivativeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeFixedInterestRate" xlink:label="us-gaap_DerivativeFixedInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeGainLossOnDerivativeNet" xlink:label="us-gaap_DerivativeGainLossOnDerivativeNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeNotionalAmount" xlink:label="us-gaap_DerivativeNotionalAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeTermOfContract" xlink:label="us-gaap_DerivativeTermOfContract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="us-gaap_LinesOfCreditCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_LinesOfCreditCurrent" 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_DebtInstrumentInterestRateEffectivePercentage" 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_DerivativeNotionalAmount" 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_DerivativeTermOfContract" 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_DerivativeFixedInterestRate" 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_DerivativeFairValueOfDerivativeNet" 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_DerivativeGainLossOnDerivativeNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-14-subsequent-events-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events-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-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain-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_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_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" 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_SubsequentEventTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain-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_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="2" 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="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="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="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_ProceedsFromLinesOfCredit" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AllowanceForDoubtfulAccountsReceivableCurrent" 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_PreferredStockParOrStatedValuePerShare" 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_PreferredStockSharesAuthorized" 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_PreferredStockSharesIssued" 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_PreferredStockSharesOutstanding" 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_CommonStockParOrStatedValuePerShare" 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_CommonStockSharesAuthorized" 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_CommonStockSharesIssued" 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_CommonStockSharesOutstanding" 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_TreasuryStockShares" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20200331.xsd#statement-note-8-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" 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/20200331/role/statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories-summary-of-inventory-details" xlink:href="ufpt-20200331.xsd#statement-note-7-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-7-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" 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/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AccruedIncomeTaxesCurrent" 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_DeferredIncomeTaxLiabilitiesNet" 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_DeferredCompensationLiabilityClassifiedNoncurrent" 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_OperatingLeaseLiabilityNoncurrent" 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_OtherLiabilitiesNoncurrent" 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_Liabilities" 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_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/20200331/role/statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:href="ufpt-20200331.xsd#statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AllowanceForDoubtfulAccountsReceivable" 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_ProvisionForDoubtfulAccounts" 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_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:href="ufpt-20200331.xsd#statement-note-5-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/20200331/role/statement-note-5-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="us-gaap_DerivativeLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_DerivativeLiabilities" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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-20200331.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-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="ufpt-20200331.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:label="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:label="us-gaap_IncreaseDecreaseInIncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_GainLossOnSaleOfPropertyPlantEquipment" 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_ProceedsFromSaleOfPropertyPlantAndEquipment" 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_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_RepaymentsOfLinesOfCredit" 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="ufpt_ProceedsFromStockOptionsExercisedNet" 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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" 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_NetCashProvidedByUsedInFinancingActivities" 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="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease" 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_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases-lease-cost-details" xlink:href="ufpt-20200331.xsd#statement-note-8-leases-lease-cost-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-income-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_GainLossOnSaleOfPropertyPlantEquipment" 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_OperatingIncomeLoss" 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_InterestExpense" 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_OtherNonoperatingIncomeExpense" 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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" 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_IncomeTaxExpenseBenefit" 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_NetIncomeLoss" 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_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="13" 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/20200331/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:href="ufpt-20200331.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/20200331/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/2020/elts/srt-2020-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNet" xlink:label="us-gaap_ContractWithCustomerAssetNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:label="us-gaap_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" 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_ContractWithCustomerLiabilityRevenueRecognized" 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_ContractWithCustomerAssetNet" 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_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" 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_ContractWithCustomerAssetReclassifiedToReceivable" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-compensation-cost-details" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-compensation-cost-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20200331.xsd#statement-note-9-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/20200331/role/statement-note-9-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:href="ufpt-20200331.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/20200331/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="ufpt-20200331.xsd#ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-net-sales-by-market-details" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data-net-sales-by-market-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-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/2020/elts/srt-2020-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="extended">
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>9
<FILENAME>ufpt-20200331_lab.xml
<DESCRIPTION>XBRL LABEL FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:49PM UTC 2020-05-07--><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-20200331.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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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-20200331.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/2020/elts/us-gaap-2020-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-20200331.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="ufpt-20200331.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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="ufpt-20200331.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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="ufpt-20200331.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-20200331.xsd#ufpt_statement-statement-note-4-allowance-for-credit-losses-tables" xlink:label="ufpt_statement-statement-note-4-allowance-for-credit-losses-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-4-allowance-for-credit-losses-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Allowance for Credit Losses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-4-allowance-for-credit-losses-tables" xlink:to="ufpt_statement-statement-note-4-allowance-for-credit-losses-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="ufpt-20200331.xsd#ufpt_statement-statement-note-5-fair-value-of-financial-instruments-tables" xlink:label="ufpt_statement-statement-note-5-fair-value-of-financial-instruments-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-5-fair-value-of-financial-instruments-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - 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-5-fair-value-of-financial-instruments-tables" xlink:to="ufpt_statement-statement-note-5-fair-value-of-financial-instruments-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-tables" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Share-based Compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-6-sharebased-compensation-tables" xlink:to="ufpt_statement-statement-note-6-sharebased-compensation-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-7-inventories-tables" xlink:label="ufpt_statement-statement-note-7-inventories-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-inventories-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-7-inventories-tables" xlink:to="ufpt_statement-statement-note-7-inventories-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-8-leases-tables" xlink:label="ufpt_statement-statement-note-8-leases-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-8-leases-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-8-leases-tables" xlink:to="ufpt_statement-statement-note-8-leases-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-9-income-per-share-tables" xlink:label="ufpt_statement-statement-note-9-income-per-share-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-9-income-per-share-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Income Per Share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-9-income-per-share-tables" xlink:to="ufpt_statement-statement-note-9-income-per-share-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-20200331.xsd#ufpt_statement-statement-note-10-segment-data-tables" xlink:label="ufpt_statement-statement-note-10-segment-data-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-segment-data-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Segment Data</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-10-segment-data-tables" xlink:to="ufpt_statement-statement-note-10-segment-data-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-11-other-intangible-assets-tables" xlink:label="ufpt_statement-statement-note-11-other-intangible-assets-tables" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-11-other-intangible-assets-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 11 - Other Intangible Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-11-other-intangible-assets-tables" xlink:to="ufpt_statement-statement-note-11-other-intangible-assets-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="ufpt-20200331.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/2020/elts/us-gaap-2020-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="ufpt-20200331.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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Remainder of 2020</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-20200331.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-20200331.xsd#ufpt_statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:label="ufpt_statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 4 - Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:to="ufpt_statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-5-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:label="ufpt_statement-statement-note-5-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-5-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 5 - 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-5-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:to="ufpt_statement-statement-note-5-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-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-compensation-cost-details" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-compensation-cost-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-compensation-cost-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Share-based Compensation - Compensation Cost (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-6-sharebased-compensation-compensation-cost-details" xlink:to="ufpt_statement-statement-note-6-sharebased-compensation-compensation-cost-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Share-based Compensation - 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-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:to="ufpt_statement-statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Share-based Compensation - 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-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:to="ufpt_statement-statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-7-inventories-summary-of-inventory-details" xlink:label="ufpt_statement-statement-note-7-inventories-summary-of-inventory-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-7-inventories-summary-of-inventory-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - 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-7-inventories-summary-of-inventory-details" xlink:to="ufpt_statement-statement-note-7-inventories-summary-of-inventory-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-8-leases-lease-cost-details" xlink:label="ufpt_statement-statement-note-8-leases-lease-cost-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-8-leases-lease-cost-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Leases - Lease Cost (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_statement-statement-note-8-leases-lease-cost-details" xlink:to="ufpt_statement-statement-note-8-leases-lease-cost-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-8-leases-aggregate-future-lease-payments-details" xlink:label="ufpt_statement-statement-note-8-leases-aggregate-future-lease-payments-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-8-leases-aggregate-future-lease-payments-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - 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-8-leases-aggregate-future-lease-payments-details" xlink:to="ufpt_statement-statement-note-8-leases-aggregate-future-lease-payments-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:label="ufpt_statement-statement-note-9-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-9-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 9 - 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-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:to="ufpt_statement-statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-10-segment-data-net-sales-by-market-details" xlink:label="ufpt_statement-statement-note-10-segment-data-net-sales-by-market-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-10-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 10 - 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-10-segment-data-net-sales-by-market-details" xlink:to="ufpt_statement-statement-note-10-segment-data-net-sales-by-market-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:label="ufpt_statement-statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-11-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 11 - 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-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:to="ufpt_statement-statement-note-11-other-intangible-assets-definitelived-intangible-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:label="ufpt_statement-statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="ufpt_statement-statement-note-11-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 11 - 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-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:to="ufpt_statement-statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="ufpt-20200331.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="ufpt-20200331.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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-20200331.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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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 (Year)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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: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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 (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 (in shares)</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="us-gaap_LinesOfCreditCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LinesOfCreditCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LinesOfCreditCurrent</link:label>
    <link:label xlink:label="us-gaap_LinesOfCreditCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit, Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LinesOfCreditCurrent" xlink:to="us-gaap_LinesOfCreditCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="ufpt-20200331.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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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,512,403 and 7,482,844 shares issued and outstanding, respectively at March 31, 2020;7,475,768 and 7,446,209 shares issued and outstanding, respectively at December 31, 2019</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_RestatementAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revision of Prior Period [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RestatementAxis" xlink:to="srt_RestatementAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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: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/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_RestatementDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revision of Prior Period [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RestatementDomain" xlink:to="srt_RestatementDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:label xlink:label="srt_RestatementAdjustmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revision of Prior Period, Adjustment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RestatementAdjustmentMember" xlink:to="srt_RestatementAdjustmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedIncomeTaxesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income taxes payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-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/2020/elts/us-gaap-2020-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/2020/elts/srt-2020-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/us-gaap/2020/elts/us-gaap-2020-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/srt/2020/elts/srt-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/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/srt/2020/elts/srt-2020-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="http://xbrl.fasb.org/srt/2020/elts/srt-2020-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="ufpt-20200331.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/2020/elts/srt-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 fixed assets</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 RSUs (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/2020/elts/us-gaap-2020-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/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForCreditLossesTextBlock" xlink:label="us-gaap_AllowanceForCreditLossesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForCreditLossesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Allowance for Credit Losses [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForCreditLossesTextBlock" xlink:to="us-gaap_AllowanceForCreditLossesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-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/srt/2020/elts/srt-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, 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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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">Allowance for doubtful accounts</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/2020/elts/us-gaap-2020-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, less allowance of $541 at March 31, 2020 and $486 at December 31, 2019</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="ufpt-20200331.xsd#ufpt_NumberOfMajorCustomers" xlink:label="ufpt_NumberOfMajorCustomers" xlink:type="locator"/>
    <link:label xlink:label="ufpt_NumberOfMajorCustomers-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ufpt_NumberOfMajorCustomers</link:label>
    <link:label xlink:label="ufpt_NumberOfMajorCustomers-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Major Customers</link:label>
    <link:label xlink:label="ufpt_NumberOfMajorCustomers-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_NumberOfMajorCustomers" xlink:to="ufpt_NumberOfMajorCustomers-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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">us-gaap_OtherNonoperatingIncomeExpense</link:label>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other expense</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, net</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: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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 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/2020/elts/us-gaap-2020-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</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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockCompensationPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockCompensationPlanMember" xlink:to="us-gaap_StockCompensationPlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 increase (decrease) 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/2020/elts/us-gaap-2020-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">us-gaap_GrossProfit</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="us-gaap_DerivativeLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeLiabilities-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_DerivativeLiabilities" xlink:to="us-gaap_DerivativeLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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 withholdings for 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/2020/elts/us-gaap-2020-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="ufpt-20200331.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 exercise of stock options</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-20200331.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-20200331.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 (in dollars per share)</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="ufpt-20200331.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-20200331.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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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-20200331.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/2020/elts/us-gaap-2020-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-20200331.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-20200331.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-20200331.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-20200331.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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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 share:</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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: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-20200331.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-20200331.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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="ufpt-20200331.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-20200331.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-20200331.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/2020/elts/us-gaap-2020-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 expense</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="ufpt-20200331.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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:to="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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 period</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 period</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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">Allocated share based compensation</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 on sale of fixed assets</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Amounts written off against the allowance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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_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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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">us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments to Additional Paid in Capital, Income Tax Benefit from Share-based Compensation</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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 (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/2020/elts/us-gaap-2020-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="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="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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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">us-gaap_ProceedsFromLinesOfCredit</link:label>
    <link:label xlink:label="us-gaap_ProceedsFromLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Lines of Credit, Total</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-20200331.xsd#ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="locator"/>
    <link:label xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Recognition of lease asset and liability</link:label>
    <link:label xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The initial recognition of lease asset and liability due to new adoption of new accounting standards.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:to="ufpt_InitialRecognitionOfLeaseAssetAndLiability-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CustomerConcentrationRiskMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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: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/2020/elts/us-gaap-2020-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: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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Percent, Total</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="ufpt-20200331.xsd#ufpt_RevisionsPolicyPolicyTextBlock" xlink:label="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="ufpt_RevisionsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revisions Policy [Policy Text Block]</link:label>
    <link:label xlink:label="ufpt_RevisionsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure of accounting policy for revisions to financial statements.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ufpt_RevisionsPolicyPolicyTextBlock" xlink:to="ufpt_RevisionsPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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: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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskByTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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, Contract Asset, Contract Liability, and Receivable [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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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 March 31, 2020 and December 31, 2019</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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AllowanceForDoubtfulAccountsReceivable</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Allowance - beginning of period</link:label>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Allowance - end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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-20200331.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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SalesRevenueNetMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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 (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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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: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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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">Provision for expected credit losses</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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">Granted, shares under options (in shares)</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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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: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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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">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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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&#8217; 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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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, Liability, Noncurrent</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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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: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/2020/elts/us-gaap-2020-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:label xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Current</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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SubsequentEventsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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: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-20200331.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/2020/elts/us-gaap-2020-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-20200331.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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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: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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>10
<FILENAME>ufpt-20200331_pre.xml
<DESCRIPTION>XBRL PRESENTATION FILE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:49PM UTC 2020-05-07--><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/20200331/role/statement-note-9-income-per-share" xlink:href="ufpt-20200331.xsd#statement-note-9-income-per-share" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-9-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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-8-leases" xlink:href="ufpt-20200331.xsd#statement-note-8-leases" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeasesTextBlock" xlink:label="us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_LesseeOperatingLeasesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories" xlink:href="ufpt-20200331.xsd#statement-note-7-inventories" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-7-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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-5-fair-value-of-financial-instruments" xlink:href="ufpt-20200331.xsd#statement-note-5-fair-value-of-financial-instruments" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-5-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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-4-allowance-for-credit-losses" xlink:href="ufpt-20200331.xsd#statement-note-4-allowance-for-credit-losses" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses" 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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForCreditLossesTextBlock" xlink:label="us-gaap_AllowanceForCreditLossesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AllowanceForCreditLossesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-3-supplemental-cash-flow-information-" xlink:href="ufpt-20200331.xsd#statement-note-3-supplemental-cash-flow-information-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:label="us-gaap_CashFlowSupplementalDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-document-and-entity-information" xlink:href="ufpt-20200331.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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_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_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_EntityEmergingGrowthCompany" 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_EntitySmallBusiness" 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_EntityInteractiveDataCurrent" 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_EntityCommonStockSharesOutstanding" 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_EntityShellCompany" 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_DocumentType" 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_DocumentPeriodEndDate" 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_DocumentFiscalYearFocus" 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_DocumentFiscalPeriodFocus" 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_AmendmentFlag" 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_Security12bTitle" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation" xlink:href="ufpt-20200331.xsd#statement-note-1-basis-of-presentation" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation" 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/2020/elts/srt-2020-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_RestatementAxis" xlink:to="srt_RestatementDomain" xlink:type="arc"/>
    <link:presentationArc order="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_RestatementAxis" 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_RestatementAxis" xlink:to="srt_RestatementAdjustmentMember" 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_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-6-sharebased-compensation" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation" 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-20200331.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" 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_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_StockCompensationPlanMember" 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="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_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_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="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="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/20200331/role/statement-note-10-segment-data" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="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_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc"/>
    <link:presentationArc order="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_ConcentrationRiskByTypeAxis" 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_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_CustomerConcentrationRiskMember" 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_ConcentrationRiskByBenchmarkAxis" 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_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_SalesRevenueNetMember" 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_DisclosureTextBlockAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-12-income-taxes" xlink:href="ufpt-20200331.xsd#statement-note-12-income-taxes" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-12-income-taxes" 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-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-13-indebtedness" xlink:href="ufpt-20200331.xsd#statement-note-13-indebtedness" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-13-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/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-14-subsequent-events" xlink:href="ufpt-20200331.xsd#statement-note-14-subsequent-events" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events" 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-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NotesToFinancialStatementsAbstract" xlink:label="ufpt_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" 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_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_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_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="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_SubsequentEventTypeAxis" 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_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventMember" 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_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="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_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="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="us-gaap_RevolvingCreditFacilityMember" 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_SubsequentEventsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-significant-accounting-policies-policies" xlink:href="ufpt-20200331.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_RevisionsPolicyPolicyTextBlock" xlink:label="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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_NewAccountingPronouncementsPolicyPolicyTextBlock" 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="ufpt_RevisionsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition-tables" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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-20200331.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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-3-supplemental-cash-flow-information-tables" xlink:href="ufpt-20200331.xsd#statement-note-3-supplemental-cash-flow-information-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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-20200331.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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:label="us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-4-allowance-for-credit-losses-tables" xlink:href="ufpt-20200331.xsd#statement-note-4-allowance-for-credit-losses-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-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-20200331.xsd#ufpt_statement-statement-note-4-allowance-for-credit-losses-tables" xlink:label="ufpt_statement-statement-note-4-allowance-for-credit-losses-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:label="us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-allowance-for-credit-losses-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_AccountsReceivableAllowanceForCreditLossTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments-tables" xlink:href="ufpt-20200331.xsd#statement-note-5-fair-value-of-financial-instruments-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-5-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-20200331.xsd#ufpt_statement-statement-note-5-fair-value-of-financial-instruments-tables" xlink:label="ufpt_statement-statement-note-5-fair-value-of-financial-instruments-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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/20200331/role/statement-note-6-sharebased-compensation-tables" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:label="ufpt_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsByAwardTypeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-tables" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-sharebased-compensation-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:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories-tables" xlink:href="ufpt-20200331.xsd#statement-note-7-inventories-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-7-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-20200331.xsd#ufpt_statement-statement-note-7-inventories-tables" xlink:label="ufpt_statement-statement-note-7-inventories-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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/20200331/role/statement-note-8-leases-tables" xlink:href="ufpt-20200331.xsd#statement-note-8-leases-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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-20200331.xsd#ufpt_statement-statement-note-8-leases-tables" xlink:label="ufpt_statement-statement-note-8-leases-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-9-income-per-share-tables" xlink:href="ufpt-20200331.xsd#statement-note-9-income-per-share-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-9-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-20200331.xsd#ufpt_statement-statement-note-9-income-per-share-tables" xlink:label="ufpt_statement-statement-note-9-income-per-share-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:label="us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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/20200331/role/statement-note-10-segment-data-tables" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-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-20200331.xsd#ufpt_statement-statement-note-10-segment-data-tables" xlink:label="ufpt_statement-statement-note-10-segment-data-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:label="us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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/20200331/role/statement-note-11-other-intangible-assets-tables" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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-20200331.xsd#ufpt_statement-statement-note-11-other-intangible-assets-tables" xlink:label="ufpt_statement-statement-note-11-other-intangible-assets-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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/20200331/role/statement-note-1-basis-of-presentation-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-1-basis-of-presentation-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation-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/2020/elts/srt-2020-01-31.xsd#srt_RestatementAdjustmentMember" xlink:label="srt_RestatementAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementAxis" xlink:label="srt_RestatementAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RestatementDomain" xlink:label="srt_RestatementDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="srt_RestatementAxis" xlink:to="srt_RestatementDomain" xlink:type="arc"/>
    <link:presentationArc order="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_RestatementAxis" 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_RestatementAxis" xlink:to="srt_RestatementAdjustmentMember" 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_OperatingLeaseLiabilityCurrent-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_OperatingLeaseLiabilityNoncurrent-n2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_DeferredRevenueMember" xlink:label="ufpt_DeferredRevenueMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:label="us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByAssetClassAxis" xlink:label="us-gaap_FairValueByAssetClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-6-sharebased-compensation-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:label="ufpt_ChairmanChiefExecutiveOfficerAndPresidentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice" xlink:label="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-2" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_The2003IncentivePlanMember" xlink:label="ufpt_The2003IncentivePlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyDomain" xlink:label="us-gaap_RelatedPartyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:label="us-gaap_RelatedPartyTransactionsByRelatedPartyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockCompensationPlanMember" xlink:label="us-gaap_StockCompensationPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_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_StockCompensationPlanMember" 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="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_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_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="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="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_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-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_ProceedsFromStockOptionsExercised-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_StockIssuedDuringPeriodValueShareBasedCompensation-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_SharesPaidForTaxWithholdingForShareBasedCompensation-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="ufpt_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice-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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized-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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-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-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NumberOfMajorCustomers" xlink:label="ufpt_NumberOfMajorCustomers-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="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_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc"/>
    <link:presentationArc order="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_ConcentrationRiskByTypeAxis" 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_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_CustomerConcentrationRiskMember" 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_ConcentrationRiskByBenchmarkAxis" 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_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_SalesRevenueNetMember" 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/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ufpt_NumberOfMajorCustomers-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-12-income-taxes-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-12-income-taxes-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-12-income-taxes-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-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_EffectiveIncomeTaxRateContinuingOperations-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-13-indebtedness-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-13-indebtedness-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-13-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/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:label="ufpt_UnsecuredRevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_UnsecuredTermLoanMember" xlink:label="ufpt_UnsecuredTermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestRateSwapMember" xlink:label="us-gaap_InterestRateSwapMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="us-gaap_LinesOfCreditCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeAxis" xlink:label="us-gaap_LongtermDebtTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongtermDebtTypeDomain" xlink:label="us-gaap_LongtermDebtTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherCurrentLiabilitiesMember" xlink:label="us-gaap_OtherCurrentLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrimeRateMember" xlink:label="us-gaap_PrimeRateMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_LinesOfCreditCurrent-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_DebtInstrumentInterestRateEffectivePercentage-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_DerivativeNotionalAmount-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_DerivativeTermOfContract-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_DerivativeFixedInterestRate-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_DerivativeFairValueOfDerivativeNet-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="us-gaap_DerivativeGainLossOnDerivativeNet-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events-details-textual" xlink:href="ufpt-20200331.xsd#statement-note-14-subsequent-events-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events-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-20200331.xsd#ufpt_AmendedAndRestatedCreditAgreementMember" xlink:label="ufpt_AmendedAndRestatedCreditAgreementMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_NoteToFinancialStatementDetailsTextual" xlink:label="ufpt_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_SubsidiaryGuarantorsMember" xlink:label="ufpt_SubsidiaryGuarantorsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain" 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_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_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_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="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_SubsequentEventTypeAxis" 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_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventMember" 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_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="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_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="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="us-gaap_RevolvingCreditFacilityMember" 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_ProceedsFromLinesOfCredit-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AllowanceForDoubtfulAccountsReceivableCurrent" 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_PreferredStockParOrStatedValuePerShare" 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_PreferredStockSharesAuthorized" 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_PreferredStockSharesIssued" 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_PreferredStockSharesOutstanding" 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_CommonStockParOrStatedValuePerShare" 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_CommonStockSharesAuthorized" 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_CommonStockSharesIssued" 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_CommonStockSharesOutstanding" 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_TreasuryStockShares" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases-aggregate-future-lease-payments-details" xlink:href="ufpt-20200331.xsd#statement-note-8-leases-aggregate-future-lease-payments-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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-20200331.xsd#ufpt_statement-statement-note-8-leases-aggregate-future-lease-payments-details" xlink:label="ufpt_statement-statement-note-8-leases-aggregate-future-lease-payments-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear-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/20200331/role/statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-6-sharebased-compensation-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/20200331/role/statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-sharebased-compensation-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/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="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-7-inventories-summary-of-inventory-details" xlink:href="ufpt-20200331.xsd#statement-note-7-inventories-summary-of-inventory-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-7-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-20200331.xsd#ufpt_statement-statement-note-7-inventories-summary-of-inventory-details" xlink:label="ufpt_statement-statement-note-7-inventories-summary-of-inventory-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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/20200331/role/statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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-20200331.xsd#ufpt_statement-statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:label="ufpt_statement-statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-11-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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear-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/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-balance-sheets-current-period-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesReceivable" xlink:label="us-gaap_IncomeTaxesReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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_AccruedIncomeTaxesCurrent" 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_DeferredIncomeTaxLiabilitiesNet" 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_DeferredCompensationLiabilityClassifiedNoncurrent" 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_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-2" 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_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" 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_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities-3" 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_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/20200331/role/statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:href="ufpt-20200331.xsd#statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-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-20200331.xsd#ufpt_statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:label="ufpt_statement-statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-allowance-for-credit-losses-summary-of-allowance-for-doubtful-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_AllowanceForDoubtfulAccountsReceivable-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_ProvisionForDoubtfulAccounts" 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_AllowanceForDoubtfulAccountsReceivableWriteOffs-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_AllowanceForDoubtfulAccountsReceivable-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:href="ufpt-20200331.xsd#statement-note-5-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/20200331/role/statement-note-5-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-20200331.xsd#ufpt_statement-statement-note-5-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details" xlink:label="ufpt_statement-statement-note-5-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="us-gaap_DerivativeLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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_DerivativeLiabilities" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:href="ufpt-20200331.xsd#statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-11-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-20200331.xsd#ufpt_TradeNameAndBrandMember" xlink:label="ufpt_TradeNameAndBrandMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:label="ufpt_statement-statement-note-11-other-intangible-assets-definitelived-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerListsMember" xlink:label="us-gaap_CustomerListsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncompeteAgreementsMember" xlink:label="us-gaap_NoncompeteAgreementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-11-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/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-cash-flows-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-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-20200331.xsd#ufpt_ProceedsFromStockOptionsExercisedNet" xlink:label="ufpt_ProceedsFromStockOptionsExercisedNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DepreciationDepletionAndAmortization" xlink:label="us-gaap_DepreciationDepletionAndAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" 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_GainLossOnSaleOfPropertyPlantEquipment-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/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="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_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/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="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_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="ufpt_ProceedsFromStockOptionsExercisedNet" 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_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-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_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" 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_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease-3" 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_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-4" 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_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-8-leases-lease-cost-details" xlink:href="ufpt-20200331.xsd#statement-note-8-leases-lease-cost-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-8-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-20200331.xsd#ufpt_statement-statement-note-8-leases-lease-cost-details" xlink:label="ufpt_statement-statement-note-8-leases-lease-cost-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostAbstract" xlink:label="us-gaap_LeaseCostAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-8-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/20200331/role/statement-condensed-consolidated-statements-of-income-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-income-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-income-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="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/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="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_OperatingIncomeLoss-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_StatementLineItems" xlink:to="us-gaap_InterestExpense" 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_OtherNonoperatingIncomeExpense-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_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest-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_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" 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_NetIncomeLoss-3" 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_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="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_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/20200331/role/statement-note-2-revenue-recognition-revenue-disaggregated-by-the-major-types-of-goods-and-services-sold-details" xlink:href="ufpt-20200331.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/20200331/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/2020/elts/srt-2020-01-31.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_EngineeringAndDevelopmentMember" xlink:label="ufpt_EngineeringAndDevelopmentMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ToolingAndMachineryMember" xlink:label="ufpt_ToolingAndMachineryMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProductMember" xlink:label="us-gaap_ProductMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/20200331/role/statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:href="ufpt-20200331.xsd#statement-note-2-revenue-recognition-contract-assets-and-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/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-20200331.xsd#ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:label="ufpt_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:label="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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="ufpt_ContractWithCustomerLiabilityIncreaseDueToConsiderationReceivedFromCustomers" 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_ContractWithCustomerLiabilityRevenueRecognized-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_ContractWithCustomerLiability-5" xlink:type="arc"/>
    <link:presentationArc order="4" 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="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_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized" 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_ContractWithCustomerAssetReclassifiedToReceivable-n8" 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_ContractWithCustomerAssetNet-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-compensation-cost-details" xlink:href="ufpt-20200331.xsd#statement-note-6-sharebased-compensation-compensation-cost-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-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-20200331.xsd#ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:label="ufpt_EmployeeAndNonemployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-6-sharebased-compensation-compensation-cost-details" xlink:label="ufpt_statement-statement-note-6-sharebased-compensation-compensation-cost-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-sharebased-compensation-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/20200331/role/statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:href="ufpt-20200331.xsd#statement-note-9-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/20200331/role/statement-note-9-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-20200331.xsd#ufpt_statement-statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details" xlink:label="ufpt_statement-statement-note-9-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:label="us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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="ufpt_statement-statement-note-9-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/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" 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_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/20200331/role/statement-note-3-supplemental-cash-flow-information-schedule-of-supplemental-cash-flow-information-details" xlink:href="ufpt-20200331.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/20200331/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-20200331.xsd#ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:label="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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: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_NoncashInvestingAndFinancingItemsAbstract" xlink:to="ufpt_InitialRecognitionOfLeaseAssetAndLiability" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.ufpt.com/20200331/role/statement-note-10-segment-data-net-sales-by-market-details" xlink:href="ufpt-20200331.xsd#statement-note-10-segment-data-net-sales-by-market-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-note-10-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/2020/elts/srt-2020-01-31.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AerospaceDefenseMember" xlink:label="ufpt_AerospaceDefenseMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_AutomotiveMember" xlink:label="ufpt_AutomotiveMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ConsumerMember" xlink:label="ufpt_ConsumerMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_ElectronicsMember" xlink:label="ufpt_ElectronicsMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_IndustrialMember" xlink:label="ufpt_IndustrialMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_MedicalMember" xlink:label="ufpt_MedicalMember" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:label="ufpt_RevenueFromContractWithCustomerIncludingAssessedTaxPercentage" xlink:type="locator"/>
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_statement-statement-note-10-segment-data-net-sales-by-market-details" xlink:label="ufpt_statement-statement-note-10-segment-data-net-sales-by-market-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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-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/20200331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:href="ufpt-20200331.xsd#statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited" xlink:type="extended">
    <link:loc xlink:href="ufpt-20200331.xsd#ufpt_CommonStockOutstandingMember" xlink:label="ufpt_CommonStockOutstandingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_SharesPaidForTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/2020/elts/us-gaap-2020-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/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="10" 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:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>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="idp6885084656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Share-based Compensation - Restricted Stock Unit Activity (Details) - Restricted Stock Units (RSUs) [Member]<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2020 </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">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>
<tr 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">42,733<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">$ 49.96<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">(28,244)<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">$ 27.02<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">128,355<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">$ 31.58<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_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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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>13
<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="idp6872498336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - 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="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">7,457<span></span>
</td>
<td class="nump">7,402<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 RSUs (in shares)</a></td>
<td class="nump">81<span></span>
</td>
<td class="nump">64<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 (in shares)</a></td>
<td class="nump">7,538<span></span>
</td>
<td class="nump">7,466<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://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 22<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1707-109256<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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<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 45<br> -Paragraph 28A<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1500-109256<br><br>Reference 4: 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 23<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1757-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_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://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 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 16<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&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://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 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 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-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_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>ZIP
<SEQUENCE>14
<FILENAME>0001171843-20-003541-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001171843-20-003541-xbrl.zip
M4$L#!!0    ( "=(J%#_ 9HE$HD  +(?!P 1    =69P="TR,#(P,#,S,2YX
M;6SL?6MWVT:RX/<]9_\#1G=FKW,.21, G_;$>V39SM6N;>E*\F3G4PX$-$4D
M(,"@ 4G,K]^J;CQ)-(D725#"G$E"D4!W=55U=74]__F_GQ>6]$A<:CKVSV=R
MKW\F$5MW#--^^/GLQVWW_/;B\O),HIYF&YKEV.3G,]LY^]\?_N?_^.??NMU?
MB$U<S2.&=+^2[N:^;1#WD[,@TO_[>/-5ZDK]T;O!]/J;]./N0E+Z2K_;'W;[
MXV[WPS^?[UW+?(?_E@ "F[*/YL]G<\];OGO[]NGIJ8??]!SWX:W2[ZMO31MA
MT,D9?S[_D^]TQ[<]=Q6]P9ZF1.\].(]O@Q_?<NCDKBI'K_FN"Z@0O1?\FO&B
M0<SL=^ '>%R>IA\GS_H\^WG\)6-\DSH#11YOPP!_(GS!,NT_MCR-/]]K-,*7
MK9DZS8:(_81KD-,@V8YM^XOL.0S/?>NMEN0M/-2%IXAKZN%[U-2S)X(?,E9.
M72]Z?*;1>S8^?)GUJ+=T!4/#+[B$2?H%CW.O =R;6L?-IU^^F("B!]K3G47X
MM#];>JG'\ M\@('25^-Q?=I]T+3E)MS!#QFP^YXK)-?T+?QZEM@SQAJS!<^-
MWO(?HT<WF.!)9<_*T^GT+?LU>I1F/0=CRF__W[>OM_J<++3N^B9[IF:1MT!^
M2-(_<=9WE/UT0V82@^+=W"6SG\\0G]T0E[UG:IP%/R,K_7Q&S<72(F=O^3BP
ML=Z=+XAMP#_>%TM[D'3']LBS=X-#&;^%*.[+P4>58=LT?C[3NZIR]F&F693\
M\^W&./'P%VR_>U],JFO6OXGF?K:-3R#YBLRD],\^=+NR E_QN42#QM-^<G1_
M$3UR#7O',;[ =[30"N6S#_\=3"D<4#0G@E5\1E@I?ILU9S3@YHP<G#*8G?+Y
M^+?I65.#;LYY!_Q4:*K)V0>YW_WO]"0X2CSV9]LSO=4%?.]JUB6(E>?_2U9%
M)I%ADC[\;RH/Y.&(3Y4YZ,:<SF+AV+>>H_]Q.]=<0J]\CYW=(,!2 )B_1><Q
MS&H0W5S 'OCY[/+[EVBEHS/)MTW^/#N>NY2->?9A/)@HD\$@!=B6F3>@Y'Q_
M0Y:.Z\'OMY[F%6,P!3;MOPE- 9 YZ/K4G^'\>8!??W&=)V\.0"\UNQ!I%#4E
M+K:,NCXU'"/$O0 F?'#<8E/"_CW7=6(%NA8;*#E]:N3U:2]A'E?3/?.1P [0
M C05FG^X@>SL0=>GOB$/)@5VM;WOVJ+0+@/EY<./+]?2W>>+__I^]?7JE\O/
MM]+E]XLD#.G1U^>^G1/+*D/?<09]DX-M3 0;Q_KH4],FM!@/#[)F2HX63W5+
M0.&$GV7E_L[TK$*X5(%C^>Z4V/;DTZV/&,]UYVJX:6]7BWO'*D0TD,)X;O,)
M4L/PT?''=Q<.2C#=^]6$G>)3#Q0N]YQ2XEW:NDM #_U$^'^_..X/^]ZT+&+<
MD$=B^^2&Z,Z#;?X%>R 76+%8ZZH!D*.^.E#5L9H0;8&VW/5!R?@P5$#E@'.K
M/E#WOG1^H6!+QX^[ECX0+7TR/.S*OYH:O,B$23"F3^X<>)*:!DHZN)'"6 1$
MC/'%=1;A:SGWF! !HZ&8]CLP4!;B0R&B&">,1B)$3*?RWA%Q"3.;FA5P"[YQ
M-?N*0S$V.[>-:(X"(H@O;-H7+$QZAJNJ:?U\YKE^='FH"DTQI$]E$=+5B9K
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
MKHA3]:>#P33SFIPU=P4H<]SE%6%U#V4R&DS*0^GZQ+ADT;]WVC.A%1 Y$EC
MSCYL&$&R)RT+6XR^)#2B0DS9I5K2DWZ-H\*K&(:$97!&S"ZTB9/-><N"E\<\
M-!;6:QI,U)+@^0N?!1=^(DL7)F8V./AL$683M@W07>!\^HM]#\HO'!;>ZMK2
M;"P\\_E/WUPN2B);%2-;!M9<7TXM<!YH]3EHJ0II.9QF\-H^5@^'.#ZN66B@
MO;0OM"4>8"5(*?>%$EF5U<$@O9CL:<O!MAO1<E]<9:D_'2IE8/O=IQY+E+CA
M<;EW3D[;=B[WQFV8AX%T8\4TEXZ-LP6%"J+:FHFJFJ$%/[%N87&W[>+TJ(L3
MX']7:21Y+*[C-EK;2N77UR1$W1!,FR/&YR G*(O^(O':8/K?8?Z7[ZX8>V>M
M:=+ -6WC2V$UK)/@RRR'8CW229&/SIW%%U=2.K'J^X*;P%A^B5RP6SHI\M%W
M<O%E[9!.BO!>>LPU;>'++3?4 _#EG2/83S#PY]F,Z!ZKL5?^J$F'/C"B)<=
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
MF@OSXT/$<WK2'4"1CQ8:/D790RY_B(IQN71-QY5T/H86CM&K;?OL84<B)@*
M9T DGO$/&P(1[N7&4B&._1+-DV8DE@U(6:UIK;:-J&1OQ'C'@R182)8#4@!A
M30D#ESPZUB,KKI+"$(@4CJ"GN:G/D^Q0FW1;:*N4/..R2_*7R-%UX6:8B9M>
MS&4%]LE"8^TU)6=?$EY1DX E 4<@EZZC$P(;-1#RAK3T7>J#O&(B(/<R]D8_
M(OF4L)8D$H@WXH+XTQUWZ8#,(PCKTJ%8:QTDY!,HC/C?)3"FZ2&4FOZG;U)>
M>)3+KDSIX]R#VJ+Q\J1%-S!6"GO@ IY@55,F*Z5,Z=]X<99OQ: =6Y31PPS:
M5:#@^7KY\>I&6EH^B/Q@8L"$YDFP^ <2G"QUZ:>]_C]2"Z]O:\N]87IH!\]+
MCQ$5Q@1Q%M;/3"E*3$N"HWSC5(,3E#&J!2KI_A'3[RG##<S\15PXN"]M# (
MS8:%_R"\VG()X["K5P"62>%BBAU_D<S^$M892F?84JPIH:V3I##Y46RS=%(2
MWV0JU.]$9Y)&PPN:N? 7TLQ\)D97GP-,Z&Z &YD&'X)JV6SW/Q(;Y5-BRR-F
MG]G;GH/EAK'A @" UP$<_//'R[M/YQECE!/9>'$&W8D&RE,X& W"J7#7X_8
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
M7S_1TE7IC-6<[:/WML:7C^5I;YISKQU[@^TYMSDH6/C(HI,*8*'-;RZ1WZP
M"0=5PF%?8G[SB61<*N->/V>4>IML67J&-N)II\8.0D0=-B<P9F]DSGR[!@V_
MS+CU-_61>\.<P8F5\'#\@*:]!"\U/E#IW!/[;I*N<7_IV%&W<31 AQYQ;,#]
M8#X&43B!N]QS))O 7*BS291XGH5! X"H5']S]"9B.^J%OUAW@D?N$C<L9AN&
M&W#_"AXGS!\2^)YPN$?-0D>*[3,C2\))Q35'WGN=N5&"E^)E'#X\Y:4T2JC-
MO-.1I^E(C1K!GG1D-:42I1S=2><V=I2W)8U;(-=BRFITML*M;KJOQ?Y=57OJ
ML*'M+/(XU8K[8\]IC=19VTJ=U%Y*1@C--6-?472]M#-^85H6BE58I&\G^N&D
MFME@LH[-PA8U)B63R3OW)-E&ATEA+?3GU8>Y=-@8*QN>_";%>,G/_WSKT^Z#
MIBW??8(3QW)@0Y*K63(,XH:WX[YPJ$>9(> C-O.YUICKG-X!'WRT'/V/#__S
M?TC2/\/!/FLN'ASTFKCA.Z;.G//P_ V9P4)_0PIW^S+\/_BH=E7Y3#*(#C2U
MZ,]GE]^_G$FF\?.9/NJK U4>J&=  Y._;U)GH,CCKD^-+F"S^WSO6B8_]>C9
MAWYOJ,1+RX2F#,#R- (8/^X$>% $X'XE@#^9EN_QMDR5<#RL"<<!/.6 +HKG
M44UXS@5TQ/+Y<(UP4GFH3N7Q\.Q#KNT^TT#JP)>>N8"#TB9/DNLL-%LLM@MY
MN@7^]:[G+-E!$7T17B;X=Z4\WC#F%N]=/U;1M[DP4M[^G<C;+.O_IB89FU(;
M=O3AR'\-+'8("Y9XR3NN 8M*C$=%XK[(!6]3C]C!(@?24[AH#GK,17U1\-CE
M;>:"!(2GT*<=:I3QY4002^?$EBNXE 2B23P/NY;MF"E]#7*2IC'0.@V< T/9
M4F D[E,9[P4Q1T33P^M,HY7*NUR4\"G7E5"I JPC@H'$$8K@1[C2;I*"Q;ZS
MC&D8RDN%<J7[;S2KD9BP0V,;TG2 D*8" 3GC?40O!=O")43ZAD8)*GVV,[S;
M14SYIX3^JD%2>Z%)KHBRZ&Y:-ZEJ<ZSO,2)MCW@MZ!<ZU45NQIPU(4Z.*U,;
M)[10;]FIK+=Q<]%]8=P9#'/V2'\Q47.-ITA>__R+")\3B\9?!3M^\_)A^,Q_
ME.QDS!TZ-[<_ML10M\% =3A/Y'S,>CC\M&2M@:RC@X9W-2SL4!SP$9I<ZM!&
MVG"B6H_-H=I6R7KQ1![DS?$XI5)*S+"6(TZHO.DS[PRUF2"3 ]4W4E4K+[?=
M<G^X,XL,MR3PGB7,MN19MWP#*_Y@]-!LANG;@0%WZ7B8W:U9<;$.M!*G=,^G
M>1#P) H5\>9K%G632I;SQ,*?-#NK%$CPDLM=W=%,B?S>P-0NP4H1IH1!GD_!
MB@+PB*R:]J/M>"GZF#;#&DM$]\3XWC"2WQ-=\X.22@&RGQS?,C P00-<ATZ(
MGO3%<1M:]N0 E8+:8BF;X68;IX&1+)J4\.(DMT"PNXVXYE!^R1#5-W&)1N%I
MK$WT%W&='.$K0B_]FC.?[0!@=^XQO=.>;V#+7SBL:@2\?[4,2BG1HI$4:C(D
M820G8U5X",+2=PD&(,CC20+LW/#4MHX=P15KZQ@(UZ'(TQK6$91_NR7N(TCB
M., H&8+T'8-.T<_',@'I'9; 2OZ.L4G?'>_?!,!,!&C%RS8%-.NF%CL0Q>N<
M?1CTV?\2Z]T7W ="SS63OR#Q@Z_P.3E_0$N(L.'9A^O!OP^ EDQXT[C"A'26
MCWY.*?'H-Q AP*G&E0VO^"Z>Y&CLCB/6"JRV.VI$Y$YQAZ[0K5O65Y69ME3<
MUQC? '9@E;T$&];ATN,=KU'$?F/O?R6/Q)+RVG1?6UV'E,LRJMRPW>'6(BE
MTG$<=EF"XJNIW9L6R#Q"W^6VAI2WHNP]/_N80!T?@F.BY3#M,3AH6US/ K@_
MP2'_J+&(N)EI:[9NLJJLU'-]%FS>+%=G(PN$O!DI.9T+A=>[)4V\17_4G7R<
M,^NV.OJ3>SFVD&;?CHOJQ@+-.LX1*:-&\RCXT: 1NG0;!5^VFT:2PYH5!1^7
M)$,[TY?H"+E<.T)./# ^<#ADC?HEZ]AD^6=800E3+&>((U[?/#(DVTRS9J;O
M>\W2L+P_G1.0$QW)<5DJ,FQZT>LSQ_%LQR/P,(O)AF$>')>98-;BY"UV5P/*
M_.X;#[SP*J4.0,N<OF9@>#;MI>_%(>$++JKP)Y@YGKXG_9=)7%3=<:?QL:ED
M$% <>/GS\]N+VG)8E7YE^^TZ@P8BF!,([;8)V9JVM?(P>*"A9ZTB%T601AW7
M@:>\#BXO3+J.UP"G\%*$P,@<ZS&/AL;.!3:7%=\V.$DU&@36T^)Q]%MXM?0.
M& RWC5J2--R04!/#;(;M9'RNNE+&1T:<].+;FO&[CW:UCO2G[R#QF7<+R]CR
MFK6AJXPR0SNK^<PV3T!\^"Y!>]SMK+E'S*BLET=/.E\;+C#;!TR4'&:%KC<M
M? S @+L[W+4]5[,I#H'FZ2TO.SHH)YR#J8\EJTT$8N;RRL(KQJV/C@52#ED;
M2W3#FMBBT3&7+-Z+]7OQWP\.J^V/ND[1M)GM7/=R>7G3MG8 7B9 <^+&8@_9
MU8[_NJ?$?63:7L#A6YC(F\,-]F$.QYS+A">R V.I@"N!IS41KS,."\<V?#<I
M-!,G;+IT!SI5=7/)I*]ES@H7Z7^MC+99T/  C 87"NV!;!+Q'EMN8LD5+"^
M%'_"U/XPTD!S.8GQ[.;.=/2P@WP+98^ %X4B]2+5Q06$9E#6A9_RKDG_X+C"
M-P*]*S[$/:+/;1-D8ERY)>N%6 E@,#@&L0JP9NU:[+98DO62[$M0BIBBQ!3.
M6 7%]<X#-7 5Z( =MF%C^U%PN+'2#*C-!,A?UV;QA$!%F=^&^1%Q<EF$+RR%
ML'4VO00_2NML:IU-+]NKTJ*E=3:]2F]'ZVQZ;<ZFRO'XQZL$6NVJ<K#P_EUR
M*:QZPMJ3VEB&$VYY\*>+%U7ZI"W9_8<;VI+6>C2.8P,T9A\/C2)XG_)YD+T6
M75[9U;##;TR^![K 7ZSXNVO.S* ;';M(4A]FT&ALW4L DKAO)8PU\ V/R[=6
MH862O040QB:<F6]9K%-;:&=A:XI:M#7QRKIK/V>'K]^EZAG2;&IW(C1KNHZV
M?AKT>$6$=N(O@TZ!W%L W[JL!1XO2T@[,36HQ^Q22 G-=5=Q<=>08G%1Q23W
MA$D$(4GFCHO6$,]WF9T6OW5HTB1&6:K$^B3A^YDE;RT']'E&>(/<IR"AJ3L_
M#:P92;X//$R;+[*LA\",8V"A!I?;%=A;.JL^BA9%[5$S+<:C:PT5$RR2(PA]
MJZ-\S:=NVJ#=?,5FO9>VI]D/)LS.O?/GNNXO?.;G.5\ HLV_N)U'%-'\VY:Q
M/JZ^:;\[[H6E47K^;-+NG:L9Y+NV(.>V\=$%;OG&&B.)HZ*'4T%UO;,/DW1,
M=/$E-0,EWQV;5?/TR'DH9>ANK(Q%6%'Z+P,M%SX%Q9RX7^&PR8&/B1 ?@X':
M5(1L6]!4N*"Q<K@%)5[ZS,7Y^0PDW[^)YG[AI>.*KFPD]T4KDP>3T23WTG:
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
M;],5MX,[:HX=$ V9++V7[DR,'F/+>6*N*-B7U)/>)%I7^Q2=H35ZE6>F&V3
MAUYET^[L;W#']Z0%\>:.\9/DN" 1/,DE\/Y?;-^SZBN\BW.BSS?KB\U<K\P1
MS%$4(,Q@'0VJ.F3WZ8T5.H!/UO&:*0=+YDOG=PZ^H(SH7$GB430"@A35J]CA
MA'UM2/I$=*:F9^!)GA[#7AKMJ=Q>W1OM"7O)@] $W6^G!M'ZUV6Y,QCGM#.U
MR;5[I42_,QSDS(9K4+!#17?7KX[[![8 6KJ.3NB6'?O:/%]*9SS-F?2^MR6^
M B0KX^D+=B_FSV='PQZ=PQ7@P7&,_-NP=3J68;MA9SH>-</GV%*V9LH.\H8J
MM=[DI#<9T!@85"MP:.M7SN-75@9M.M[+)*X,JD&E@Z4Y00-B[XK #Q,J,.C_
M0X?@U>R&4.(^KG6>R!<L,)@*G41#.+K7W$0[(:@.\NY(@<%4V.UC"&=232"O
MN]_RHE/8O0/#'===@?%<!:#(@R%A;QIYHHBH*H;B1GOZ%EJ:JC.<N"V</!BO
M.W!W05 9XCS8%+=5Z@^QB40=$*-Y -N(,.- =22+8PS@LIT-L1B"ZB#GP;+8
MK;_9$K,@R%^Q2<L%^L2J-5*1A9R@CM(@1C/F!:186Q-92%]UW"\$R!UK;%+<
MH:]W 1E-<.87]U\)O5@OS8E5P!4SWEL%WSM,/Y:^P?-S*GW&7.,J][=30G]5
M]]A>:%+!A_CF[_])I93'O&Y*UDFT0[HO]TB*[8[;%[/(XWA=\]W[V%DIX6&9
M/\6[E#0NB>AJUH<=@R>N[LT'_53@;!B*#VE +1[H$/6SW') MZYUKL*J_;9\
M>"/(</BV!H<X+\LX1-@X_])<DUE%\XJU%^^0/U2>?XOAIL<[[-G]&*K[MW/'
M];H8$%[!-=5ZQG?S74.\XBU5:Z5J0Z)8&G$KWAWC8+$K,V:A5&#+U@^^6]$<
MY0SJ:R,<3HVRXRK]0O83WE"[AO,:E=MC G5\"(Z)ED:<G>RE"XW.02B:O. O
M[Q:)KA7,[&>MX:4%'*"^RZHH8"HC/T\MN$.;ENF9A-99;/0ET[Q%RRG>66/]
M((?QM]4V#F@W;O7(DZ-LE9Y6S=(CZSN VP.C14NCS]%\@/W*O+[$Z&HPI?9
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
M0,B;O,]Z<6&?#>UE+*N(W1CP=">CO/)-HZ@6CE1BVD;B7$PAU#>4*SO].F$
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
M/WO@)ZW/X&F#)X5BB9S4>N7UX^ PEH8T%&!I2&M-+)5' .41P*H,2NO0+X\
M-ND(X*G"1YI4>03P+:N)/ )XQ". IX46:4KE$< WJ17R"*!$B@@I\@A@7LC)
M(X!O01_D$<#\,)1' -^&3L@C@,TZ M@"R+SY4$N&.C4A31X!E//7'A"11P E
M+.010 F)G9"01P E,.010 F+O+"01P#?,B#D$< F'@%L*W#D$4")"WD$L"%'
M %L %GD$L#5' %N/)GD$L!E' %L/)'D$\*A' %N/'WD$4"(G1(YVK@VB_\3M
M?U_T9> U+XC6Z_5O^'8H\XEL]@;^O",6#,/X!@2\WE/=9OH,O07VX37ZBS_O
M+723+G7[:F&2^<<7,O/P75_G<W!=*7BJWRAA'!W!JW//HNV&;I33H?<NY/<N
MM!;Y<'[1A1-X,0&6.=:<^EWXM&!5VHTZ5%"[HX^4K=V#S;PP.._W?J8T?;XC
M3X[U!#-J_+= %VMN,XT_D5\>ROL)_K?9CQV_WF[%3^WDO-;-#&F4J5BRP772
MTJ1#+[+U* V#Q[(S@^)>!!J LNV,&6T_G:+J/VS0,,_? =@8*W-2=@,5)!^7
MI?4H:#W*TEW3QIR'F]+2._RE5#64RB01+!%<P.F\=>Q'E] E?G;M<:YMZCW\
M<NNT_?3?FX![H4&D"#TYG<9%?[+*5OCX5GN5H+K35ZV3OJJUI>)7C"5\V%6R
M1"X)-WM)N%%HD$NZQUO2;100Y))L[4NRC9*_7%(]/<E/6U05-<*21,W8*ECR
M\X-NZ?:,?%\0DE*\X<JC%(9^:^H/&-R9X7G<MQ1KB#B4**\@8E6YR=I6A3UU
MX#=2N&#]SW\! G0Z6[S>X@9\#LGU;S?V"MP<_H,68#GRBL_<$G*;^8GR):+9
M:_SYR!WL#I,+M/5N8CX6;O"5P<LRP9Y#+"ECRI#/B6J C'+;$N4>'PTRRFU$
ME'M\(,@H]YA1[O'E+Z/<4Y1\*U<"II4&_G[*1W8O:%;W@J.*7Y95K[FL>LW2
M#K8_K'><1/\V_NTQ=[,9HFW2QC/#"?+.+I(7$S2>J)1EV-N>L/?8:)!A;T/"
MWF,#08:]QPU[CRU_&?:>G.1;U?)RPY+D:> J6"+#WL:&O4<0OPQ[CQ;VUB)M
MN9-#[N1H,W[E:3=Y_*?M"'XSIE3:KRWIRYUH!Z-*[D1KMP:8X&>36S *!FB^
M;C^:#Q;A[:08<(Z7UEYWSPJ+;-^:S&WYE%R [.T.A1'Z)2K.(4B?80=3EZS=
MEK<(#C$;)$;.[ZEN$%YNS38^@%MIO"6 \-IRZ0PX46C(==Z6K/,V  URG;<)
MZ[P- ()<YSWB.F\#Y"_7>4]2\L/S7AO7>8>'U7X)K^#_X<__!U!+ P04
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
M>BP@L<KS)7K^.=([SO0(DU]4&7$)&J]FD_0M5IVY'!+X^7]02P,$%     @
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
M-\QA#>_RA^%U9X[P0(VG S7#XD"?CIP/":>WM*BH_'?*YLNG.+IQC&-X<>(
M*$ 7SNMRX;R46O7-OS_3&>6<IN=+>6GTS-@;HIW>M3SL1 A:BB^4* +3T^)<
MN;9Y5LSWE3?V6\&N!.6W:N<X+FZJ4O[,I!K-LUJM[C_4W0]R(D2CB/MZ'$Y@
MR\>%=WQM.-LFKD$=@=O[9V&EFHXDDI$@I%[9OV?E]8$T;MB"<ILSR[4[.JG0
M285.JHB=5'!5U53U=M M<G3>+T>U'YU!._AK97"<')6C)JI%@JXZ=-6AJVY0
M5UT[E.O3!?=C(E1"[Q61TY;(UC=2>-MD4UG'\>** U*![CATQTGT<' M=]8%
M*0ZN,SH[O)>[J4KB/YW-LBGE*V=ZENI2J+H,T0/QAW(AL0=*Y4.^LH*N_JI3
M]$]OE,CKB7;LV@.QE]=4?75<3.54R DZRXF!/GOK !7][PA/50*]P4O3V"9
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
M?,[E6U#KZ71VOEQD($:=^J*9M7OIQ2 I<1>'4=B$)K;0%$13$$W!G3<%-2J
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
M8KI68^'-:!XR-ULL1OZTD(C!,4B,?%E=EZRM=W!TAZ[<O+G1E>X"OYW-!0C
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
M(]J%M-:P=S?27QA;2O#':;X,,@SUI-$T)"O01NWCA2PPH\+>A]2)@/\1#A)
MQI31@<Y;=(Q(JJ47J%>2U;AN2WI_H'KS1'\B6:QW,! !,"JE78B<2.8/5#*O
M=ZA')(Q"WO<*8#]#;0G=C].$96+IR!OG6Z.B=H##B93]2*6,A<7')& \9O?*
MEI"#ML3J Q5H:DCQ=(VSTKCJ"%@O%*.BQL7F1.@^,-,&^-$=SLK]=T3BU[\4
MO8(HR5^W(8N2Y8_!RT6<APG)Z8FN+P0A\XEF2$$$VD%2+@@?18YVV.F!W_-1
M7XK;1(>%MFS?R=MICA?LYR@H AW#)P9AU.IUHW)B\D[>PD&C1(XN*/(1V;N>
M%>@U=C)LM2: )U-2+*F1C9N(U31@(2LM692%9E8L^["ZD= 3*J&W0,=QH'1,
MPBJ]1/URJ\9WM]F%]>^B. \6BZQJ$#3;3BG%TU7P#Y)-@: <HE%0&Y%/@S2:
M5M41^30G232-RFI" RF*%JAQD.=HD&J?R9*MWUZT9P+=^>A,T$>8"7J$F4"$
M]F>8":(SH?M-.1/T0&>"OJZ*2[\9D3:[DS;-#$YK(C2B--"/0;')Z'^E+B4'
M0+*1#MJ-T;:VEB1-4$-4&4.9H(:N":HI&\L]XI"%DTVIE%D-MX+/')K2B?E$
M>;3),LSMWR,<JRF\G3!MBV?IQ04>7#<I3A(E]@QTNQZS(,*?@A4^3:.SC!KG
MCW@UPT<E5A)#=1P6#DC; L#0(L#+_ "&&?U:XNZQ/C8GH5<F?!\OE@5U:,+?
M-W%&O9YBF9'-8HGH9ASG157J2_V> ,TV>9Q2^X12F'E!T (ZTU#?:)W1'3XL
M$'X)$SKF":--CL%WRC!\F$;,CYHQ-M%?L!\J6!Z*A/ODD*BLB^.L* AUGL'=
M8OLBE9??)!RLFZG4"=11EGG[)CF4ODFV.Q$URR'&[B<!2BPF1(UE;D_Q8562
M7\<5X'"05-X27'^:.Z$K8G)P^I:DR//)NFZ:4$6ZV&9PLZ/R%9V:525 \T2L
MM:PC.NW695_W>$6]@PAGM_.K. ^#!"I%= Z]4@!MED)V(AY5560GA=8*) WQ
M0Z-6LL$,7B0(Y_A.^G+2JEI#*<%RQR9@9Y'.A8=^_D!=E3T"Z$P5CS!KJ9@!
M^@O.NQ"B(RM\@JH( &IM*'Y4B"\51)Y57JL,\RJO'R+3$L-U/%$'=+BO8M2C
M=T15CS"H50(C\<$8?5P7LF6FP-*$P/@IR,PWJU60;8'P_6$1V<R*^2:I^VKI
M'51M(7=8Z*E.Y!B*0IF98(2# =@?>%$17C>)&^<)UYKH#*P['2H/?DOB=K^M
MSNXKZLQOZ 2G0;$'()T&<.:G/@UTU)L%>:QG =R3Y:$<SP3Y8RKF@U'-[ZNH
MV,=J2B@H]D"D*(!X6CDE= 93&J4]\2"(AFH*S4N7^XK$@Q_R0LN8#(#OJ&Z1
M2X?W4D86Z&[]>$Z)&Z6B#EGD ;6/DBOG7G5:#D=>0"X-6;/?!V$1/\7%UK F
MJ:)SI%BR9(U!SUJ>]P/0BFX9K=3?+FE]96JG+!$#M%!OF=TK)960(HM#R 0M
MZ=RD<6%+)=60.5)(.:+&H([W#:65.GZFE+Y69524A0&JJ+/ ;IH%M(Q$_6L]
ME5,':[&Q@ B]CW8#^QM9_8=QZHO&0BIV*9!?'>N]"]A_] ]1$G#L]#0XQN>X
MOT']C_&>?6361KX%0A_#K4MJ4R\SG;/N815%ZRIE8)CX*@*W(].21+@7]-.:
ML+K!72GY=;;&N*5?=6GE54)KO1RV#7G&D.H.H;TGG 4+/$TW+*$;SD,P()]N
MP%$K"//5-A1(BHLI7NOIDDT";#<K&4RHMSXG]%>_5,2CTY)X](D1SR(&C'CT
M&0XR!6%G&4H\/*.++N\>1JFW5L5(I]&*8=EPU3H#B,@#J#J?;:?4V_P-ZWEX
M&G"M-MD0X/?3>8/^"/KT #1!"?5'1M,H=4MG+97;=4@OD(<>'A&>LZ:T"32E
M[?R[AH(80^>J"X@D6=[;A-"_7%2D3I/NELOC5#-S$C&DZ8C6,GM0RLIY#EK=
MH,O(B&7MU,7K2DU5Z1N#OG8U0&<!OU>NM]JR,D2!APG 0$V&U<X?29.Z\U"3
MW:E__:-UM(8/U86LY^B1M%*7=LC=BZP$>XDBSZR)Q^DL9P5]:F)R^)59<:FA
M>Q4;]&M-AN..+8J<[Y>D;G;Z>3#E=MY=ILUN9\M<B;R^GE5Z)F4XX(&/H^@3
M8/U)E-;]>!4$1J=91H<P^9A4.2J3W;WX2)H6&5S;CB=/3"W8&'ILM);S;+L;
M4JWVZ7.019>_;^A$6IF^S"U\7 9I-=>?*8@BOT[O<!:3J Y35E%*]L<+:E$@
M_Y>E__+T<6ST&>TDXF$>MJT#(QI'$U1'3E$5.44!_ 5%<)$$J<:(I1JCK^,4
M121)@BQ':WJN8%%5Q^>"L:U1IYD9"W%?IK7Z*\X+>*EJK-9*D[[162O%>3CQ
M97+TQ*CZ_S;+A,0YL5F#Q&A<1Y5=3BGS%"&C-&=,,'INT<1BZ1"C2(WW$TUG
MWN_K.^#H"H'":6?0ROI23,%;E8K*IPQIL())8QS/2ZGC4Q?U9>M4"<VU^%)\
MZ$\D+1VI\;G/ZJ2-SG.6GX+?MIYNYVJN&>K8UVC-7-V'(LB*&Z7ENMT4.35&
M49PNK)YPOCQF7Z;1.%G]Z@Z3&O;7R3E25X8&WI]>X#G.,AQ5763Y7>2% W5N
M23L!VMXP:J1-UUSM[O&&R-?K'7^Z@F8\X-]&]83*?&'6YY?,DGA1YKP4!!54
M@'(Z"+K%1YNP8$.JEUS@[^$F+^B7&6NC]+R,PR6B"IK'$:YZT"^#',TP3E&&
M0\S\:#HPSJL?P9OTT$Q>+(Y$?I&^.)>WS+KWY]?NXQ^O\UK2^05YJ.6$1NH9
MZ7+;C*^Y*_M&K.P;0=EWSAR>LG9BK [E,+8-\QJ',NWUNH8')LRM_]>UY&XW
MJ0LJ/$]T8D_X$6>KVWG]E@!G3^D;KKD%\,"ZLM@\_#J6PMQ<-+JW[Y!/$* '
MM[%Y'N)KZ&CN1Y%[Y8:H,O!+\>7V\R \YR.-UI/;)]-9-M&_W+;($0</&4%?
MIK;O9Q!XSN<9K;;OD_GZCVW[\QG7\4.;UQ]*7J?E>\)J;LI! M2_G)GEZ*&'
M)":_9X]UAL.8S8S^.\%LBFG4KN3CGD/D/]4^D_2CL!_"WM' 8KGMNCQ/CKP"
MX\D0;GK8\O.[((ZN2/88O/P2%\LE22 Z0G_1K8VB[5L3U)"M6!&E];HT7)36
M&^6X*,H71> X:C$^9YT#&B?RWBR_:B]D!.,D8E<S= *H-0-TN[OE&<6FJ"O=
MAQO<H 7S8"!F_1OR['!#WMMVJ<6[?%ECD/Y' K]J16$/+H/+]^CH[^OXQR9(
M("!R(C([HR)PB#$;Q41LF\B24K:QXXI6N*4%M[@CD2.KR43ACDZ4Q'/L,[(W
MGM7B6IE14.?3=AVFA5[$>9@0>(*C+\=8X4M-;9? 8%L-CU.%=T2@7WWG"ZLL
M 1G UU<28A,KYN4+SL(XAT25 \6L_H+OJ.]I/!/8*%&NPW%&B!]]D,[(+)V&
M[CRMB\891\V/P15]: T$?A&9J&;UWT08T(+P?!$;1,MSLY,\IXE^7$;_B,Q7
M;MZ/YC,B0VZ UZ9-=AE?0ILT@I;.)?7C"#RYU$C[9KAGZ;\T@]NT]*=GDRQ.
M\SBT4I9GBI[1FF0.W5ZC5<V[!"BNB2HKC;Y06]$G.TZ-AY1 O"YKXO<@_SI.
M[%_8T7S$9_ Q';9;M/Q+':X]GJ)?P7&Y#/*>;[*,TLZQBIUC-&W7'BQ7%F8/
MJ8X=&$AU08H@4=/61_@$A25&5/;.]J)^W8M/I'CSNF[:^=KJ^DI] "6>[LXU
M*+:M_.+][LN\%!\B. 9OOP=+PZLU'/L'*0?V@8/0OQDX(,RIMH\PJ&!WM>WH
MKG )7V58 #=E0LR_<A)/5$'M-R @)/&510.$<_$8"C#,XX&)Q>VIM+.+X6W
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
M RL3IV(KT_5W'2O3AF/=RI3(/%J93JZ17E8X/PVQO?NN/ ?T'H4$@_7/01U
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
M,EP>JH6FL_^# <?1;L .SI\59K1#[==D2G"9J+/.>8"\?LVDKYJ%-U _@'T
MT.6S,Q.4XJ+LL#3?I)&?*U0!3XD\HSSY<6?;X[@><P,$30_4/A[JW0F1^ WR
M^NN4H+@$72Z? E\=/UAQ])Q@CY_7_X'N0Q5<P/;/J0Q=^Z$;/TZ:!&^).L.<
MM^B GI)"7ZMSC'Z;C1TL5VT^O?I0W=PC4BQQ''UGO45X(?:]/^K&T1D05]DX
MIQ*]4LS2J9T'[+&MR\'"$C$7'%<@M2KJZBJ[ZY2U^F1]N,5[G^+7NK5$<EB<
M5%G6K\7YV0]5^4T&,M'Q3DG9#7%G@?/?-41WGVR!LKY-TI\0(//IM7?RCL@P
MQ(\8"!-_N@<-% 5'K=%WPN S3X?#P0Z!\'_Q<[E:)V2+<=64O?O-B$^$95[@
MB#T/D;-MO_WW<Y)7#1[O<4@6J: <T#H^34&U1I<KA]':!'1\T!%Q4Z/12%F)
M,P-Z4979B5JIG1/44(X8Z1,$I-+?EMU;=]1.T"E[^7:"V.2\&"/["D><K[OC
M^QU<@%M'C[I/<82CL^WG'-X9;U[G/&U2Z_JR$K4!Z=X'*2-TXNG/J8-<-0@E
MS6.MWA,4]1>'F./X%[+YW[&'NZY(5OT*QIVX]@B$1(S-3>@D]M7[#IVS&I5#
M88CO?KV,<A(LO;8U#?3UWW"0^:G*\:34+EP1"8EQW-&MRB*\B?.>Q!/!2-T^
M;<<0G:5Z,IQ^[T=$#"4*7'(<F8:^ V!C;N(4L_H)7A":.U WWGP$T,7;1M5K
M1H 3,:2>6DKQN4GD6>2OJ.6";&;%?)/4;XU3^X?C)XE7X75@&"AVZ<7EMO E
MJLB!%U\8/=[K7>07@U/[HLAAQZ)[1!0<SL22*O&)KF *0-N6PQW.?(+H_^4H
M:"23S-&_??_="0H*]!%2A=#[DPD"CK)LJ'_[[L<_PI\N* 38M:J_GGSP([LR
MRT-T>.Y8,JO6$T$"&8/7:?5R$D\HQ:-UY;$;JG63V*!E][W3.$5AB=F/1/7P
MEB@RS*T<750=I=HG%KA9$N;"R'VD*55BX*["&6(J=,(/IN>E$2Z "N_?-T$2
MSV,<H:ANEA:V*&+-:[SHD:10$3V.RFH5YU'HNGADOSSS4#WZ1ZKJ!!^B=47@
MHU9^FMG4#'1$GJ$&%^6@=;"W2>@]''V/U_2OK"*F6&*4-M-:L6G5KS?G]<D
MKD/@Q'#R]G_"0\\KDC$_#;[-US@L+<#QJ]MHAM-PN0JRWR;H>1F'R^I9:O#Z
MZM<EDW@50T2Q().R.=WN#>OZ6$)_4[M+$X2+T,.CTCUZ2!16U?&.W'3.OYVW
M+=L]3J!#&803\Z.N0;T=(@Q!U=W3AV&W'N 1A]']=Y@PM7K$TI(X+E"*4VJ
M;N(GN!8MZ"K%U,Z4FW[="ST)\JX6%@,@Z)8JR6.R7J_$2)DR6M".&%12T^JN
M#P1Y+6#26!UB@.6CD>(=D;V9EII0S$MS%S:_$CW9DV?_*9VZ2R4GVOW\=QV@
M^@?UIMBF46TIC^0Q>('.OTN20-W]%<FZ;U2Y0:S!$+4#7=J8G=7ZZ).H52#D
MA"-#>O.RUME  *+:492U%64U>%YD<5C43>+1AJJ4IWL4 P)-+*R)ZYMDN@I
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
MI%<D*X_V8&7%=Q5&@.E62V@AM9X?5Q^R=V1-4$,8T[$J^ 6T*=\'V"JR&+:
MQ.RJ."[+"/(EU4WX#UR]/P4)R]@HSH,LVU+S]=<@V?!"1TK?ZI9OR.!PTH$1
M[#Q[K@OOZ-#QPRW-J+RX>2B"K%#SJ[F3@Q[\,[R(T[3<QJJ[H='-^3)5?&)4
M.&.<1K)SM56VHZ169!"7';?-CO/ZLJ^ZN7K"Z:8G(T#G6]U&VC(XK'?4WB.B
MO%UG9(QENU1;"3*(O8[=PO)6%4?=EZY5]07/#53Z6-?MDT)BW<VKJ:C><3I.
M2O#CQZFM !G&5M<-JYBNU&$?Z)\%KT:=5TWD^JRGZN?:3:WDT-AO<U5:3-9'
MI7F7@+VJ6M/BOU>1\IJ0H8QV*[)G9=;1 R0=W539*H*L_K[AFB+) VM;!"N\
MB"%&-6:?"?V]#":J7/,O3\)<_OX/#,J4FZQ^GE3YS.V78'./9 W)\H<9Y+5P
MY3C\=D&>WD0XIM,X^0#_F,(_6N)$?U66_D%H^BH)%@?2P_V[HK <P7%2G,J2
M.0&;4U'@\XST,L)+Y)>>AN]($H?]#Y#T?S L@ML!V%&4%J(Z-6JZ+U7(O89@
M15P^#K/VLLZM:'W"SRW",I+2?X8LNSIG9&[+_^]SU77!:(JA*CK[/8Z?45M
M]RB:E *[1;]6__7MPVLO%C&U H[+=3%+&O@9IS@+DM,T.HU6<1J#\L%E7W50
M%B?(:<'0+>=5P66]TJ8D9H(J<E@,>I\@5%/D-Z=.;XF($;Y;=?PNV>T^RWEA
MCV?ABZ (JES #C]09KB&6R@":[TNN,QO:"%'@+W.ZW3N-DJQF*CRS4.:\"=J
MN.N>H&7^527E_=G"DI\.21KN0>$F=[A-!*KR^;ZNZ/AF!%G$LNMPF$RLQ%RW
MHODS/5A#QL%M^A! =1GU+^#%DNT=71[6J&&].C9]>A]KBJ<<$E=)NW+4Z-R!
M&Y_GAW*>:5D[J78%#L1 =6@>E(6_\_@%ZC3S'/<E-5C2/T51(\/XZKLTJRMF
M7Y<B;#G*J G%6-F6$)NC(JZ+NM]X5MY_F"GB,CPS/<.C2-9("KSD1%!8[J7
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
M@\B@.0X[A=0(\PE*L9\M44FLA&>//CZZ2!' \'!B<IU&^.5_8WYV$6><?E+
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
MHV-DP]@)M1R].$A(=8MIDO,WE+.<?]P$-=UL$M-(AOY)MJ(:4$IBA"-&./S
M!@-APR7$>;I9[,MN7'"<T&!FQ DC3AAQPH@31IQP[/Z6YQYY]+<Z^EO&A[EE
M?^L#]TKX*)Q4Z!%O/AG4QVJ?;<NO4KT]^E+1E_+#"0F$#;>^E%CFU^C1Q(G2
M3XG>4_2>HO<4O:?H/47O*7I/?GI/T%/<LMOTD;L>&;ZI<%9B9NPVM<^VY3:I
MWA[=IO[=IE8KC-%JRP+C/^U:7^)"U"_H,9_7\];T:.G?+9&6EVK2VOYNA[1+
MT1JHY7.V_LTB25)9M?RU![=\,F]6\J3,5O?J9D?\3,BKR8SB9CN0]]TVG!H8
MAB A\:J^87F6([KXM484E?Q!3"Y"_>@>2/I6,G&S3W,1"RGN\W*V_$XG2-SF
M4RWDY)G-[)/4:TSG9T35]5TSU+X#?(@*KE_XZA;CZDR\5YA<\KHTW7 _&%#6
MI.DG."A)>Z:@JKI Z4#71*OK !5#'6"'W$"$HVV:T6[(/RWY&5 W_0#ERB(?
MZ)IH;:]FW7 7#-#\'HEF/>O[CK35KY I+AEY$K#(0U8JDG[*R$, @;#A/I+Q
MA/;HK0G #&_84*YTT!PG>7J8<B_GDM-U]8#NE+7(ZL'VB1=HX?D4;!GIAOO!
MP)EP/JE2EZ#3'#!$RHR4C9[<H/+/\^D4"R^+Z\O9Z>'YI5*[C.8Z86W&29L+
MNT/3FD,UU#WA:M52#K9/_+DH'3BJ*6V" ^A&Z'J.)<B#R1Q'K'PE);G#HK2K
MG"V/A.-'T5^K'1[K,M4^8Q<TGV.Q3I4\2$;%+(3P[A+Y#=%<4""^MF*;E US
M2[!R>Y0/C+D>,==C5QPQUV,MD;!S/=I#:T03WAH[UV# GY@CZZ'(!@)?O$CX
M ($$H4@(!!R2+HAI.!*28O3$% X/128*$(?(1H4L#R7B0,S<^U!D(G4O"-R>
M#T466NB3=$470Y&0/DD5!A^'DK0+TAB35)]0!*-7%%U0/11): R3SJETX3>J
M@@<*0M$5K8$"3GU[/3V\7LM1 SADNB1L@L4SVIM\8$!Z*&H"L><[Q)#!XAGM
M;4>*S/^QZX82>54488S=Q%#S+:^+&3O?)GN!,N ,%L2/?@L"XHU ,S/'OAET
MA90A:6U@V?SDMVST^@*KWPA%5TR"5P9Y16#Q_.RW>/3J D[0#45C#$-ZYJE;
M8$%]\EM05CH?C!Y5CJT/VJ\@A914/<G&2M>#[Q-6WS#\5RU^)5KM5\:M#Q2/
ML-7_0$M";(*P0]9PO>-BD7HX1>JQS'><9;ZQ3G;4Y8R!L.&R*O,LEM%Y5D9G
MU-#$9$ZLM@FOVN9J8\X?WTM-1LA8YZ1KRBHUH[T@7[GA:,<[9X%I;W'6C8]U
M4+$.Z@68$^N@MI!/.<HQ=N9CQ4*L6(@9Z;WMK1ISAQ@;%L%(1A]5@9B*H40D
MNRO*Z\[3AP$9H<@#M.$.4M#A>2Y9+.CPIJ CINR/1%-@=EM,UM]Q_?I)>AEM
M(GK,>5%?3@_#UJQEO;!\5N;3/.4F0(+2E-2ER%]+[DB1ISEFFW^LR=,GP9@^
M<?B<F&X4Q129';*&2Y'A9TC.^%=F%^)++);_+T6IX3-Z(&U+BSKKTS;A?3S/
M?@1ALJ'J8D6+)@JNGV"?B:_X88LL2DK^SW2)\X/T;L_'..C9^)P0S2?3C!XI
M^2YS+F)8?+3&76];=0P8R@*&P 4[=C\A!@MME8F,502OS6/6&1K$W(P,130
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
MY7^->&Q_A$L\_47G[=75A8>XQ--<ME ULY(#EPSI[T63<@6?:I^Q7_DQ*G;
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
M% ,4    "  G2*A066KGCW0\  !AF 4 %0              @ $X+0$ =69P
H="TR,#(P,#,S,5]P<F4N>&UL4$L%!@     &  8 B@$  -]I 0    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<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="idp6873519728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; 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">March 31,<br /> 2020</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">December 31,<br /> 2019</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: inherit;">11,471</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: inherit;">10,540</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: inherit;">2,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: inherit;">2,279</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: inherit;">5,976</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: inherit;">5,457</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: 10pt; 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: inherit;">20,242</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: inherit;">18,276</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=120391452&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=120391452&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=120391452&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>16
<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="idp6783810128">
<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">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">March 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">2020</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> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; text-align: center">(in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for:</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="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Interest</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: inherit;">12</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: inherit;">47</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">Income taxes, net of refunds</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: inherit;">-</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: inherit;">(156</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">&nbsp;</td> <td 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">Non-cash investing and 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> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Capital additions accrued but not yet paid</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: inherit;">232</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: inherit;">108</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">Recognition of lease asset and liability</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: inherit;">-</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: inherit;">3,831</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_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>17
<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="idp6873451760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Income Per Share<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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: 0"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">9</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Income Per Share</div></div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">Basic income per share is based on the weighted average number of shares of common stock outstanding. Diluted income per share is based upon the weighted average number of common shares outstanding and dilutive common stock equivalent shares outstanding during each period.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The weighted average number of shares used to compute basic and diluted net income per share consisted of the following (in thousands):</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 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">2020</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> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Basic weighted average common shares outstanding</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: inherit;">7,457</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: inherit;">7,402</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 RSUs</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: inherit;">81</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: inherit;">64</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">Diluted weighted average common shares outstanding</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: inherit;">7,538</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: inherit;">7,466</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; color: Red; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; color: Red; 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=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The computation of diluted earnings per share excludes the effect of the potential exercise of 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: inherit;">not</div> included in the computation of diluted income per share because the effect would be antidilutive. For both the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font: inherit;"> March&nbsp;</div><div style="display: inline; font-style: italic; font: inherit;">31,</div> <div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div></div>, the number of stock awards excluded from the computation of diluted earnings per share for this reason was zero.</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://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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109243012&amp;loc=SL65017193-207537<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 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 260<br> -URI http://asc.fasb.org/topic&amp;trid=2144383<br><br>Reference 4: 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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3630-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_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>18
<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="idp6873500480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Fair Value of Financial Instruments<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">5</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Fair Value of Financial Instruments</div></div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">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: inherit;">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=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font: inherit;">1</div></div></div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt">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=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font: inherit;">2</div></div></div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt">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=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Level <div style="display: inline; font-style: italic; font: inherit;">3</div></div></div> <div style=" margin: 0pt 0 0pt 45.35pt; font-size: 10pt">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=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">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=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt; text-align: left"><div style="display: inline; text-decoration: underline;">Level 2</div></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">March 31,<br /> 2020</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">March 31,<br /> 2019</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">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: White"> <td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Derivative financial instruments</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: inherit;">(624</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">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(175</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">)</td> </tr>  </table> </div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">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=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">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></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>19
<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="idp6614188800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Indebtedness<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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 cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top; text-align: justify"> <td style="width: 0; text-align: right"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">13</div>)</div></td> <td style="text-align: justify"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Indebtedness</div></div></td> </tr>  </table> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">On <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2018, </div>the Company, as the borrower, entered into an unsecured <div style="display: inline; font-style: italic; font: inherit;">$70</div> million Amended and Restated Credit Agreement (the &#x201c;Amended and Restated Credit Agreement&#x201d;) with certain of 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=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">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: inherit;">$20</div> million unsecured term loan and an unsecured revolving credit facility, under which the Company <div style="display: inline; font-style: italic; font: inherit;"> may </div>borrow up to <div style="display: inline; font-style: italic; font: inherit;">$50</div> million.&nbsp; The Amended and Restated Credit Agreement matures on <div style="display: inline; font-style: italic; font: inherit;"> February 1, 2023.&nbsp; </div>The proceeds borrowed pursuant to the Amended and Restated Credit Agreement <div style="display: inline; font-style: italic; font: inherit;"> 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=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">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: inherit;">1.0%</div> to <div style="display: inline; font-style: italic; font: inherit;">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: inherit;">0.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: inherit;"> March 31, 2020 </div>there were <div style="display: inline; font-style: italic; font: inherit;">no</div> amounts outstanding under the Amended and Restated Credit Facilities other than <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font: inherit;">$0.7</div></div> million in standby letters of credit outstanding drawable as a financial guarantee on worker&#x2019;s compensation insurance policies. As of <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020, </div>the applicable interest rate was approximately <div style="display: inline; font-style: italic; font: inherit;">1.99%</div> and the Company was in compliance with all covenants under the Amended and Restated Credit Agreement.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 15; Value: 1 -->   <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Derivative Financial Instruments</div></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The Company uses interest-rate-related derivative instruments to manage its exposure related to changes in interest rates on its variable-rate debt instruments. The Company does <div style="display: inline; font-style: italic; font: inherit;">not</div> enter into derivative instruments for any purpose other than cash flow hedging. The Company does <div style="display: inline; font-style: italic; font: inherit;">not</div> speculate using derivative instruments. By using derivative financial instruments to hedge exposures to changes in interest rates, the Company exposes itself 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, which creates credit risk for the Company. When the fair value of a derivative contract is negative, the Company owes the counterparty and, therefore, the Company is <div style="display: inline; font-style: italic; font: inherit;">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. The market risk associated with interest-rate contracts is managed by establishing and monitoring parameters that limit the types and degree of market risk that <div style="display: inline; font-style: italic; font: inherit;"> may </div>be undertaken. The Company assesses interest rate risk by identifying and monitoring changes in interest rate exposures that <div style="display: inline; font-style: italic; font: inherit;"> may </div>adversely impact expected future cash flows and by evaluating hedging opportunities. The Company&#x2019;s debt obligations expose the Company to variability in interest payments due to changes in interest rates. The Company believes that it is prudent to limit the variability of a portion of its interest payments. To meet this objective, in connection with the term loan under the Amended and Restated Credit Agreement, the Company entered into a <div style="display: inline; font-style: italic; font: inherit;">$20</div> million, <div style="display: inline; font-style: italic; font: inherit;">5</div>-year interest rate swap agreement under which the Company receives <div style="display: inline; font-style: italic; font: inherit;">three</div>-month LIBOR plus the applicable margin and pays a <div style="display: inline; font-style: italic; font: inherit;">2.7%</div> fixed rate plus the applicable margin. The swap agreement was established to modify the Company&#x2019;s interest rate exposure by converting interest on the term loan from a variable rate to a fixed rate to hedge against the possibility of rising interest rates during the term of the loan. Because the Company repaid its term loan in full, the swap agreement <div style="display: inline; font-style: italic; font: inherit;">no</div> longer serves this purpose and <div style="display: inline; font-style: italic; font: inherit;"> may </div>be canceled by the Company prior to its expiration date. The notional amount was approximately <div style="display: inline; font-style: italic; font: inherit;">$13.6</div> million at <div style="display: inline; font-style: italic; font: inherit;"> March&nbsp;</div><div style="display: inline; font-style: italic; font: inherit;">31,</div> <div style="display: inline; font-style: italic; font: inherit;">2020.</div> The fair value of the swap as of <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019</div> was approximately $(<div style="display: inline; font-style: italic; font: inherit;">624</div>) thousand and $(<div style="display: inline; font-style: italic; font: inherit;">175</div>) thousand, respectively and is included in other liabilities. Changes in the fair value of the swap are recorded in other expense and were approximately <div style="display: inline; font-style: italic; font: inherit;">$300</div> thousand and <div style="display: inline; font-style: italic; font: inherit;">$239</div> thousand during the <div style="display: inline; font-style: italic; font: inherit;">three</div>-months ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019,</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_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>20
<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="idp6787971056">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 1 - Basis of Presentation (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<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_OperatingLeaseLiabilityCurrent', window );">Operating Lease, Liability, Current</a></td>
<td class="nump">$ 1,140<span></span>
</td>
<td class="nump">$ 1,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_OperatingLeaseLiabilityNoncurrent', window );">Operating Lease, Liability, Noncurrent</a></td>
<td class="nump">$ 1,687<span></span>
</td>
<td class="nump">1,940<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_RestatementAxis=srt_RestatementAdjustmentMember', window );">Revision of Prior Period, Adjustment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating Lease, Liability, Current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">476<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, Liability, Noncurrent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (476)<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_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=121603541&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=121603541&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_srt_RestatementAxis=srt_RestatementAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_RestatementAxis=srt_RestatementAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>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="idp6871831616">
<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">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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 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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">2</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Revenue Recognition</div></div></td> </tr>  </table> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">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: inherit;">606</div> which include (<div style="display: inline; font-style: italic; font: inherit;">1</div>) identifying the contract with a customer, (<div style="display: inline; font-style: italic; font: inherit;">2</div>) identifying separate performance obligations within the contract, (<div style="display: inline; font-style: italic; font: inherit;">3</div>) determining the transaction price, (<div style="display: inline; font-style: italic; font: inherit;">4</div>) allocating the transaction price to the performance obligations, and (<div style="display: inline; font-style: italic; font: inherit;">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: inherit;">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: inherit;">not</div> as performance obligations but rather as fulfillment costs. These activities are required to fulfill the Company&#x2019;s </div>promise to transfer the good and are expensed when revenue is recognized.</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Disaggregated Revenue</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The following table presents the Company&#x2019;s revenue disaggregated by the major types of goods and services sold to our customers (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-left: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid">Net sales of:</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">2020</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> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">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: inherit;">47,029</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: inherit;">46,410</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">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: inherit;">677</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: inherit;">645</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">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: inherit;">571</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: inherit;">273</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 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: inherit;">48,277</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: inherit;">47,328</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=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Contract balances</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">Timing of revenue recognition <div style="display: inline; font-style: italic; font: inherit;"> 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=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The following table presents opening and closing balances of contract liabilities for the <div style="display: inline; font-style: italic; font: inherit;">three</div> months ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019</div> (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended<br /> March 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">2020</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> </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: inherit;">2,574</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: inherit;">2,507</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 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: inherit;">525</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: inherit;">991</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">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: inherit;">(667</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: inherit;">(526</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">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: inherit;">2,432</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: inherit;">2,972</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; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27.35pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">Revenue recognized during the <div style="display: inline; font-style: italic; font: inherit;">three</div> months ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019</div> from amounts included in deferred revenue at the beginning of the period was approximately <div style="display: inline; font-style: italic; font: inherit;">$517</div> thousand and <div style="display: inline; font-style: italic; font: inherit;">$497</div> thousand, respectively.</div> <div style=" margin: 0pt 0; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0pt 0; font-size: 10pt"><div style="display: inline; font-style: italic;"></div></div> <!-- Field: Page; Sequence: 8; Value: 1 -->   <div style=" margin: 0pt 0; font-size: 10pt"><div style="display: inline; font-style: italic;"></div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">When invoicing occurs after revenue recognition, the Company has unbilled receivables (contract assets) included within &#x201c;receivables&#x201d; on the condensed consolidated balance sheet. The Company considered the guidance in ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> upon adoption and in the current period and determined that an allowance for credit losses was <div style="display: inline; font-style: italic; font: inherit;">not</div> necessary on the unbilled receivables balance due to there being <div style="display: inline; font-style: italic; font: inherit;">no</div> history of credit losses. The following table presents opening and closing balances of contract assets for the <div style="display: inline; font-style: italic; font: inherit;">three</div> months ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019</div> (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended<br /> March 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">2020</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> </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: inherit;">72</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: inherit;">65</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: inherit;">522</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: inherit;">85</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: inherit;">(404</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: inherit;">(106</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: inherit;">190</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: inherit;">44</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><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 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130551-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 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130556-203045<br><br>Reference 4: 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 12<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 5: 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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130550-203045<br><br>Reference 6: 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 12<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 7: 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 12<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 8: 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 12<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-203045<br><br>Reference 9: 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 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130558-203045<br><br>Reference 10: 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 12<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130554-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_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>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="idp6607808784">
<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="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_SupplementalCashFlowInformationAbstract', window );"><strong>Cash paid for:</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_InterestPaidNet', window );">Interest</a></td>
<td class="nump">$ 12<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="text"> <span></span>
</td>
<td class="num">(156)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr 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">232<span></span>
</td>
<td class="nump">108<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_InitialRecognitionOfLeaseAssetAndLiability', window );">Recognition of lease asset and liability</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">$ 3,831<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_InitialRecognitionOfLeaseAssetAndLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 initial recognition of lease asset and liability due to new adoption of new accounting standards.</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_InitialRecognitionOfLeaseAssetAndLiability</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_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=121583591&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=121583591&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=121583591&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=121583591&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=121583591&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=121586364&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=121586364&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>23
<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="idp6880866016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Income (Unaudited) - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 48,277<span></span>
</td>
<td class="nump">$ 47,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_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">35,454<span></span>
</td>
<td class="nump">34,831<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">12,823<span></span>
</td>
<td class="nump">12,497<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">7,752<span></span>
</td>
<td class="nump">7,244<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 on sale of fixed assets</a></td>
<td class="num">(4)<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_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="nump">5,075<span></span>
</td>
<td class="nump">5,253<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_InterestExpense', window );">Interest expense</a></td>
<td class="nump">16<span></span>
</td>
<td class="nump">231<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_OtherNonoperatingIncomeExpense', window );">Other expense</a></td>
<td class="nump">327<span></span>
</td>
<td class="nump">239<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income tax expense</a></td>
<td class="nump">4,732<span></span>
</td>
<td class="nump">4,783<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_IncomeTaxExpenseBenefit', window );">Income tax expense</a></td>
<td class="nump">841<span></span>
</td>
<td class="nump">1,049<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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 3,891<span></span>
</td>
<td class="nump">$ 3,734<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_EarningsPerShareAbstract', window );"><strong>Net income per share:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 0.52<span></span>
</td>
<td class="nump">$ 0.50<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_EarningsPerShareDiluted', window );">Diluted (in dollars per share)</a></td>
<td class="nump">$ 0.52<span></span>
</td>
<td class="nump">$ 0.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_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>
</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">7,457<span></span>
</td>
<td class="nump">7,402<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="nump">7,538<span></span>
</td>
<td class="nump">7,466<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_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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<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.2(a),(d))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&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 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 2: 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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<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 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-109256<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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<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> -Subparagraph (a)<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=121326447&amp;loc=d3e1337-109256<br><br>Reference 7: 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=120380238&amp;loc=d3e4984-109258<br><br>Reference 8: 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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<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 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=120380238&amp;loc=d3e3842-109258<br><br>Reference 10: 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 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22644-107794<br><br>Reference 11: 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 12: 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(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121326447&amp;loc=d3e1252-109256<br><br>Reference 14: 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=121326447&amp;loc=SL5780133-109256<br><br>Reference 15: 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(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&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_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=120380238&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 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22644-107794<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 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=120380238&amp;loc=d3e3842-109258<br><br>Reference 4: 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=121326447&amp;loc=d3e1252-109256<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> -Subparagraph (b)<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 250<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 7: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<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=121326447&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 942<br> -SubTopic 220<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br><br>Reference 10: 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 11: 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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: 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> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 13: 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=121326447&amp;loc=d3e1337-109256<br><br>Reference 14: 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(25))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&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_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=121586364&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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<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 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 4: 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 5: 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=120311839&amp;loc=d3e8736-108599<br><br>Reference 6: 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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: 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 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 8: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 9: 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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-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_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://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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<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 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<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 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 4: 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 5: 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=120311839&amp;loc=d3e8736-108599<br><br>Reference 6: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 7: 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=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 942<br> -SubTopic 235<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399901&amp;loc=d3e537907-122884<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 10: 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=120399700&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 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 10<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32672-109319<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 (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&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 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=120395691&amp;loc=d3e23780-122690<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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 6: 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=120385591&amp;loc=d3e38679-109324<br><br>Reference 7: 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(9))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br><br>Reference 8: 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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=119993939&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=120311839&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=120395209&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=120399700&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_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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: 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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 4: 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=120399700&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> -Subparagraph (a)<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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 8: 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<br><br>Reference 10: 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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 15: 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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 16: 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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 19: 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: 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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 23: 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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<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 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 4: 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 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: 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=120311839&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_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=120395209&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_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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 4: 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 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: 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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 6: 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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 7: 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: 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=121604090&amp;loc=SL49130543-203045<br><br>Reference 9: 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 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 10: 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 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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 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=120395209&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://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 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 16<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&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://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 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 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-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_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>EXCEL
<SEQUENCE>24
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( "=(J% ?(\\#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,$%     @ )TBH4"?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    "  G2*A0^#/J5NX    K @  $0   &1O8U!R;W!S+V-O
M<F4N>&ULS9+;2L0P$(9?17+?3MK%4^CF1O%*07!!\2XDL[O!YD RTN[;F];=
M+J(/X&5F_GSS#4RGH] AX7,*$1-9S!>CZWT6.J[9GB@*@*SWZ%2N2\*7YC8D
MIZ@\TPZBTA]JA]!R?@4.21E%"B9@%1<BDYW10B=4%-(1;_2"CY^IGV%& _;H
MT%.&IFZ R6EB/(Q]!V? !"-,+G\7T"S$N?HG=NX .R;';)?4, SUL)IS98<&
MWIX>7^9U*^LS*:^Q_,I6T"'BFITFOZ[N[C</3+:\Y16_K/C-AM\*SD5S_3ZY
M_O ["[M@[-;^8^.3H.S@UUW(+U!+ P04    "  G2*A0F5R<(Q &  "<)P
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
M^C;3S_WX#J'8W1[*L.^&6]??-]?3TNM#5Y^GD^#D=AR]^1]02P,$%     @
M)TBH4!3S!EUD @  @ @  !@   !X;"]W;W)K<VAE971S+W-H965T,RYX;6R-
MEF^OFR 4QK^*\0-4_*^--5F[+%NR)<U=MKVF+:WFHCB@]>[;#] :!6Y[^Z("
M/L\YOZ/D8-$3^LHJA+CSUN"6;=R*\V[M>>Q8H0:R%>E0*^Z<"6T@%U-Z\5A'
M$3PI4X.] (#$:V#=NF6AUO:T+,B5X[I%>^JP:]- ^F^+,.DWKN_>%U[J2\7E
M@E<6';R@GXC_ZO94S+PIRJEN4,MJTCH4G3?N)W^]\Y5!*7[7J&>SL2-+.1#R
M*B??3AL72"*$T9'+$%!<;FB',):1!,??,:@[Y93&^?@>_8LJ7A1S@ SM"/Y3
MGWBU<3/7.:$SO&+^0OJO:"PH=IVQ^N_HAK"02Q*1XT@P4__.\<HX:<8H J6!
M;\.U;M6U'^/?;79#,!J"R>!'#PWA: @U@S>0J5(_0P[+@I+>H</;ZJ#<%/XZ
M% _S*!?5LU/W1+5,K-[*-"R\FXPS2K:#))A)@J5B9RK">))X(O\$$5@A N6/
MYA"1!C%($B5IE22.? W#U$198N<(K1RAR1%K'(,DG>4 *Z"#/!$M2"(K2622
M)!K)((EG27R@?AK,<]V")[;RQ"9/JO'$1AZ=Y)%BP9!8&1*3(=,8DJ<,CQ0+
MAM3*D)H,N<:0?F2'/!$M2#(K26:09%JMV\RH-0#6+?(!X8(HMQ+E)I%6]C8W
M$J6Q'T1 :SD[BRY*XS3)[#P^L/<V8!(%>G,#EE19D$61WN-LPB@)0/X.TSO]
MUC>9C(;KF^\CC^-<)WHF&WB\V5$@S^8?D%[JECD'PL6IHGK_F1".1$BP$L$J
M\3DP33 Z<SE,Q9@.9^(PX:0;SWMO^N@H_P-02P,$%     @ )TBH4)L-^4\;
M P  3PP  !@   !X;"]W;W)K<VAE971S+W-H965T-"YX;6R%EV]OFS 0QK\*
MXOT*_@.&*HG4,$V;M$G5IFVO:>(DJ( S<)+NV\\VE#+?L;TIV'GN[F<;/[JN
M;JI[[D]2ZN"EJ=M^'9ZT/M]'4;\[R:;L[]19MN:7@^J:4IMA=XSZ<R?+O0MJ
MZHC&<1HU9=6&FY6;>^PV*W71==7*QR[H+TU3=K^WLE:W=4C"UXFOU?&D[42T
M69W+H_PF]??S8V=&T91E7S6R[2O5!IT\K,,'<E^0W 8XQ8]*WOK9>V"7\J34
MLQU\VJ_#V!+)6NZT35&:QU46LJYM)L/Q:TP:3C5MX/S]-?L'MWBSF*>REX6J
M?U9[?5J'61CLY:&\U/JKNGV4XX*2,!A7_UE>96WDEL34V*FZ=W^#W:77JAFS
M&)2F?!F>5>N>MS'_:Q@>0,< .@68VO\*8&, >PO@;O$#F5OJ^U*7FU6G;D$W
MG-:YM!\%N6=F,W=VTNV=^\VLMC>SUTW&5]'5YADEVT%"9Q(R*2*3?*I L0I;
M"L+IWP4*J,@2O )#U\!</)_'I]X:!DGJ)*V3\(P*X8$@*L%HAK-PE(5#%J_*
M=I DLRHLX8FWZP6BXAE;V/D$94D@2^:Q)* *H1EE'@NFXKG 65*4)84LN<>2
M@BI")/ZW@H@HYSB)0$D$(,ECCT2 (N_\XX%9.,4I,I0B@Q3$H\@ 11*+Q.-
M1#1A.$F.DN20Q-OT;0[/W[M@!930I8^5Q+@3Q1"$^584PUM!_5N,B"C+%U@6
M7)% %F"+!)2Q;N'#8*ILX8 (ZJ /A$*:Q*>AH$[&B0\#123F2UN#FRV!;IO[
M;DN@D;+,_[X+3"78PETFN-V2P2;9G&;!EPAND@2Z9.Z[Y*@1,]+X#E@3KEJ
MP5V20)O,?9L<-?^#054+,+A1$@'VEL3Q0@K<Y0BT.1+[/D>@APF>@%N-J>(%
MSR6XU1'H=23VS8Y *Q,)RWP<1,73U,.)9FU8([NCZUC[8*<NK;8=SVQVZHH?
MJ&WCO/FM[99=>_>69FBUOY3=L6K[X$EITR2Z5NZ@E)8&TAQX&)Q,=S\-:GG0
M]E68]VYH<8>!5N>Q?8^F_R$V?P!02P,$%     @ )TBH4.2:KJ(C!   ,14
M !@   !X;"]W;W)K<VAE971S+W-H965T-2YX;6R-6-MNHT@0_17$>P;ZPBVR
M+8T#:%?:E:)9[>XSL=LQ&J ]0.+9O]_F$B94%<8O,9!3I^MTT7VJV5QU_;TY
M*]5:/\NB:K;VN6TOCX[3',ZJS)HO^J(J\Y^3KLNL-;?UJ]-<:I4=^Z"R<+CK
M^DZ9Y96]V_3/GNO=1K^U15ZIY]IJWLHRJ__;JT)?MS:S/QY\RU_/;?? V6TN
MV:OZ2[5_7YYK<^=,+,>\5%63Z\JJU6EK?V6/*1==0(_X)U?7YM.UU4EYT?I[
M=_/[<6N[74:J4(>VH\C,S[MZ4D71,9D\?HRD]C1F%_CY^H,][<4;,2]9HYYT
M\6]^;,];.[2MHSIE;T7[35]_4Z,@S[9&]7^H=U48>)>)&>.@BZ;_:QW>FE:7
M(XM)I<Q^#K]YU?]>1_Z/,#J CP%\"A#R9H 8 \2O /]F@!P#Y!3 @YL!WAC@
M_0JXG9(_!OA3 !OJ,4Q6/_MQUF:[3:VO5CV\0)>L>T_9HV_J>^@>]N7L_V<*
MT)BG[SOFBHWSWA&-F/V X3.,G&.>*(PWQ\04QI]C$@H3S#$IA0DGC&/T3J(Y
M*9KW!')&$ '1 \;K,56/"40(%"48)%PZ$4$F(G BS 6)#!C_<R)P\C&$1\P/
MP?1C%&,L=#G0A&$/7@A+0'!)5WH!+5Z2XB4AG@'Q$DTP!_.38!K)Z30\,@V/
M2 /,R1YC)( \>3C3"-0I7J=)UB'I[9%FBGU2L4\HAFO>1X,P\ XDF&9IX@,R
MC8!( \S8'F/0Q =X.N ZC==IDG5(>GNDF>*05!P2BD&J^Q -\@ 6<H)IEB8^
M(M.(B#3 /KS'&#3Q$<Z4!V !Q^L\R3HD71EJIIFYM-&Y:)@(BB8P2/4=F'C$
MS'PA$.#=3NY@2M>8YLH7+)X1]0Z@=(;]3L+EF!"H)<-CM/4RPGM9")/AZY['
ML/>:;3#P82DPS*PY3Z"^ P])V![%)J6,HH4YH%V?4;8/^X\1-"^(1&ECU&)!
M:!=FA U#C]V/H-L%P5XMW,A#:P/#F# 5@;L",215$(+-9U&TM#?0+0"C>@#8
MBC#"=^'.3! M;<V,]F9&F3-L1P@0WJ>P@WLB@,58)TKNP*0K@\V%T]T H]H!
M=!(A+!CV@P318@UHFV:43\/.9 3-6F!8 NSE$OI]3 R&2[".2<G!_ 7==%_
MJ,8 ]B>,\&*X5A*"::D&G+9KCLT1-RD$"*T#CAWTP?/!2Q/?P93<@4G71IM+
MI_V:8[]&G0J!P<K7,3$G##V,8#GO8$K7F.;*%\[E1'/ X3[,B9.Y# 5,^?ZC
M.:==FA,NS>%.S(G3N0?K@#&""0D/AP2,"4]*I.RN SK%YOL\@.<5Y].'HNYC
MXI]9_9I7C?6BVU:7_9>AD]:M,ISN%S.;9Y4=IYM"G=KN,C#7]? 1;[AI]67\
M0.E,7TEW_P-02P,$%     @ )TBH4%W:V$@)!   KA(  !@   !X;"]W;W)K
M<VAE971S+W-H965T-BYX;6Q]F-MNXS80AE]%T'U6Y(R.@6T@=E%T@5T@V*+M
MM6+3!ZPDNI(<[[Y]J4.\]LRP-['$_!S^0Y&?1EQ<;?N].QK3!S_JJNF6X;'O
MS\]1U&V/IBZ[3_9L&O>?O6WKLG>W[2'JSJTI=V.GNHI J32JRU,3KA9CVVN[
M6MA+7YT:\]H&W:6NR_;GVE3VN@QU^-'P[70X]D-#M%J<RX/YT_1_G5];=Q?=
MHNQ.M6FZDVV"UNR7X8M^WB ,'4;%WR=S[>ZN@R&5-VN_#S>?=\M0#8Y,9;;]
M$*)T/^]F8ZIJB.1\_#L'#6]C#AWOKS^B_SXF[Y)Y*SNSL=4_IUU_7(9Y&.S,
MOKQ4_3=[_</,"25A,&?_Q;R;RLD')VZ,K:VZ\6^PO72]K><HSDI=_IA^3\WX
M>YWC?W23.\#< 6X=W-C_UP'G#OBK0SPF/SD;4_VM[,O5HK77H)V>UKD<%H5^
M1C>9VZ%QG+OQ?R[;SK6^KS3@(GH? LV:]:2!>\U-$;GHMR% &F(-K#L\#K#A
MBCR11T Q"1S[XT,2L1P@%@/$8X#X+D"1DDF8).DH:48)YH4FB0BB##U.$M%)
M(J3BF8M4#)"R5#307"9-<F<35$I$&TD$(%O)1"L9GU5%G&1LD*>8^.!18H^+
M7'21\PG19 &N<V8CP8SXX!HH/(^V$(T4S$A*IZ-@8\1 UYBD\?C02M[S2EAD
MF2>$!QM:6&8YY8;F3S=7-!])I>/$@Q@M,N9% _.#!;4#PD %6_>"3-_%>G0C
M\T@C7[/T4<^:QZ4?,S-<A:GO:<MLTQQNL:9F8KZX<[H1!5&6^QZ33#>=,"\)
M\Y)P+S'=C(+H"3'WF)%)J3DJDYB:$2B849YN!-53H7P[2H:EYIQ+$NI&P"5H
M1&I'DB4J]?B1L:DY-Q/Z'M&<B6[KTK>[H(I3SSM-R^C4G)T:V/[F9$R9%T&C
M/,L&9'J"XEZ0[NY9])!SQF9&4&$*'M: 3&+0'.;HJ\]D> *'IT;ZB@2)G@H4
M34F28>Z;8IF?P/G)5OD:.!HUW0E"(%_Q #(]@=-3(Z4$<#*ZN5$46J+,/S<R
M0D&H$-&SFT &'P@U(M*]+8CX^A6XATHICQL9?,#!IVGQM0:.M%A3# LB\'U(
M@$P]$*I%I'4-"-A+:"VWD520^7:FS#T0N,?J&N!,<Q2F;V])!47N>2F@S#X4
MV,<J&Q2HEK!/)4'UE,6^SSZ9?2A4H:RV05Y?8A934D@J\!44*',4!8[2/;.>
M1???B!E2HFP$%<0%$CO1W5=^;=K#>"#2!5M[:?KA>_JN]7;H\C*>N9#VM7[>
M3$<GO\),)SE?R_9P:KK@S?:]K<>3@KVUO7$FU2<W6T=3[FXWE=GWPV7FKMOI
M!&6ZZ>UY/AV*;D=4J_\ 4$L#!!0    ( "=(J%"USF\OL@$  -(#   8
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
MZ/S+QO[7B Y\*IL;/T*M_V"S(:%VX7CGSV8<L]%PV$T_B,W?N'@'4$L#!!0
M   ( "=(J%!/)'69MP$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#$U
M+GAM;&U3VV[<(!#]%<0'!*_72;8KVU(V5=5*K;1*U?:9M<<V"C NX'7Z]P7L
MN&[B%V"&<\Y<&/(1S;/M !QY45+;@G;.]4?&;-6!XO8&>]#^ID&CN/.F:9GM
M#? ZDI1D:9+<,<6%IF4>?6=3YC@X*32<#;&#4MS\.8'$L: [^NIX$FWG@H.5
M><];^ [N1W\VWF*+2BT4:"M0$P--01]VQU,6\!'P4\!H5V<2*KD@/@?C2UW0
M)"0$$BH7%+C?KO (4@8AG\;O69,N(0-Q?7Y5_Q1K][5<N(5'E+]$[;J"'BBI
MH>&#=$\X?H:YGEM*YN*_PA6DAX=,?(P*I8TKJ0;K4,TJ/A7%7Z9=Z+B/T\T^
MG6G;A'0FI OA$..P*5#,_"-WO,P-CL1,O>]Y>.+=,?6]J8(SMB+>^>2M]U[+
MW=TA9]<@-&-.$R9=8Q8$\^I+B'0KQ"E]1T^WZ?O-#/>1OE]'S[)M@6Q3((L"
MV7\E?GA3X@;F/GD3A*UZJL"T<9HLJ7#0<9)7WF5@'^(CLG_P:=J_<=,*;<D%
MG7_9V/\&T8%/);GQ(]3Y#[88$AH7CO?^;*8QFPR'_?R#V/*-R[]02P,$%
M  @ )TBH4*YP18.U 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,38N
M>&UL;5/;;MP@$/T5Q >$->M<M+(M91-5K=1*JT1MGUE[;*. QP&\3O\^@!W7
M3?T"S'#.F0M#-J)YL2V (V]:=3:GK7/]@3%;MJ"%O<(>.G]3H]'">=,TS/8&
M1!5)6C&^V]TP+61'BRSZ3J;(<'!*=G RQ Y:"_/G" K'G";TP_$DF]8%!RNR
M7C3P#.YG?S+>8HM*)35T5F)'#-0YO4\.QS3@(^"7A-&NSB14<D9\"<:W*J>[
MD! H*%U0$'Z[P ,H%81\&J^S)EU"!N+Z_*'^)=;N:SD+"P^H?LO*M3F]HZ2"
M6@S*/>'X%>9ZKBF9B_\.%U >'C+Q,4I4-JZD'*Q#/:OX5+1XFW;9Q7V<;E(^
MT[8)?";PA7 7X[ I4,S\43A19 9'8J;>]R(\<7+@OC=E<,96Q#N?O/7>2Y'<
M)AF[!*$9<YPP?(U9$,RK+R'X5H@C_X_.M^G[S0SWD;Y?1T_3;8%T4R"- ND_
M)?)/)6YA]I^"L%5/-9@F3I,E)0Y=G.25=QG8^_B(["]\FO8?PC2RL^2,SK]L
M['^-Z,"GLKOR(]3Z#[88"FH7CK?^;*8QFPR'_?R#V/*-BW=02P,$%     @
M)TBH4$!P!F>V 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,3<N>&UL
M;5/;;MP@$/T5Q >$7=:Y:&5;RJ:J6JF55JG:/K/VV$8!Q@6\3O^^@!W73?T"
MS'#.F0M#/J)]<1V )Z]:&5?0SOO^R)BK.M#"W6 /)MPT:+7PP;0M<[T%42>2
M5HSO=G=,"VEHF2??V98Y#EY) V=+W*"UL+]/H' LZ)Z^.9YEV_GH8&7>BQ:^
M@?_>GVVPV*)22PW&233$0E/0Q_WQE$5\ OR0,+K5F<1*+H@OT?A<%W07$P(%
ME8\*(FQ7> *EHE!(X]>L29>0D;@^OZE_3+6'6B["P1.JG[+V74$?**FA$8/R
MSSA^@KF>6TKFXK_ %52 QTQ"C J52RNI!N=1SRHA%2U>IUV:M(_33<9GVC:!
MSP2^$!Y2'#8%2IE_$%Z4N<61V*GWO8A/O#_RT)LJ.E,KTEU(W@7OM=S?9SF[
M1J$9<YHP?(U9$"RH+R'X5H@3_X_.M^F'S0P/B7Y81\^R;8%L4R!+ MD_)=Z^
M*W$+<_<N"%OU5(-MTS0Y4N%@TB2OO,O /J9'9'_AT[1_%;:5QI$+^O"RJ?\-
MHH>0RNXFC% 7/MAB*&A\/-Z'LYW&;#(\]O,/8LLW+O\ 4$L#!!0    ( "=(
MJ%#A/[_$MP$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#$X+GAM;&U3
M[6[;(!1]%<0#E,1QES2R+36=IDU:I:C3MM_$OK91@>L!CMNW+V#7\SK_ >[E
MG',_N&0#FF?; CCRHJ2V.6V=ZXZ,V;(%Q>T-=J#]38U&<>=-TS#;&>!5)"G)
MDLWF$U-<:%IDT7<V18:]DT+#V1#;*\7-ZPDD#CG=TG?'DVA:%QRLR#K>P ]P
M/[NS\1:;52JA0%N!FABH<WJ_/9[2@(^ 7P(&NSB34,D%\3D8WZJ<;D)"(*%T
M08'[[0H/(&40\FG\F33I'#(0E^=W]2^Q=E_+A5MX0/E;5*[-Z8&2"FK>2_>$
MPU>8ZKFE9"K^.UQ!>GC(Q,<H4=JXDK*W#M6DXE-1_&7<A8[[,-[L;B?:.B&9
M",E,.,0X; P4,__,'2\R@P,Q8^\['IYX>TQ\;\K@C*V(=SYYZ[W78KO?9^P:
MA";,:<0D2\R,8%Y]#I&LA3@E_]&3=?IN-<-=I.^6T=-T72!=%4BC0/I/B8</
M):YA[CX$88N>*C!-G"9+2NQUG.2%=Q[8^R2^R5_X..V/W#1"6W)!YU\V]K]&
M=.!3V=SX$6K]!YL-";4+Q[T_FW',1L-A-_T@-G_CX@U02P,$%     @ )TBH
M4!JM[^RU 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,3DN>&UL;5/;
M;MP@$/T5Q <$FW7:U<JVE$T5-5(KK5*U>6;ML8W"Q0&\3O^^@+V.D_H%F&'.
MF3/#D(_:O-@.P*$W*90M<.=<?R#$5AU(9F]T#\K?--I(YKQI6F)[ ZR.("D(
M39(O1#*N<)E'W\F4N1Z<X I.!ME!2F;^'D'HL< IOCJ>>-NYX"!EWK,6?H'[
MW9^,M\C"4G,)RG*MD(&FP'?IX9B%^!CPA\-H5V<4*CEK_1*,Q[K 21 $ BH7
M&)C?+G /0@0B+^-UYL1+R@!<GZ_L#[%V7\N96;C7XIG7KBOP'J,:&C8(]Z3'
M[S#7<XO17/P/N(#PX4&)SU%I8>.*JL$Z+6<6+T6RMVGG*N[C=+.[PK8!= ;0
M!;"/ #(EBLJ_,<?*W.@1F:GW/0M/G!ZH[TT5G+$5\<Z+M]Y[*=-]DI-+()IC
MCE,,7<<L$<2S+RGH5HHC_0].M^&[386["-^MLV?9-D&V29!%@NQ#B>FG$K=B
M/JLDJYY*,&V<)HLJ/:@XR2OO,K!W-+[)>_@T[3^9:;FRZ*R=?]G8_T9K!UY*
M<N-'J/,?;#$$-"X<O_JSF<9L,ISNYQ]$EF]<_@-02P,$%     @ )TBH4/VU
M[HNV 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,C N>&UL;5/;;M0P
M$/T5RQ]0;RZ%U2J)U"U"((&T*@*>O<DDL>I+L)U-^7O&3AI"R8OM&9]SYN)Q
M,1G[['H 3UZ4U*ZDO??#B3%7]Z"XNS,#:+QIC57<HVD[Y@8+O(DD)5EZ.+QC
MB@M-JR+Z+K8JS.BET'"QQ(U*<?O[#-),)4WHJ^-)=+T/#E85 ^_@&_COP\6B
MQ5:51BC03AA-++0E?4A.YSS@(^"'@,EMSB14<C7F.1B?FY(>0D(@H?9!@>-V
M@T>0,@AA&K\63;J&#,3M^57]8ZP=:[ER!X]&_A2-[TMZI*2!EH_2/YGI$RSU
MW%.R%/\%;B 1'C+!&+61+JZD'ITW:E'!5!1_F7>AXS[--UFRT/8)Z4)(5\(Q
MQF%SH)CY!^YY55@S$3OW?N#AB9-3BKVI@S.V(MYA\@Z]MRHY9@6[!:$%<YXQ
MZ1:S(ABJKR'2O1#G]#]ZND_/=C/,(CW;1L_S?8%\5R"/ OD_)>9O2MS#W+\)
MPC8]56"[.$V.U&;4<9(WWG5@']+X)G_A\[1_Y;83VI&K\?BRL?^M,1XPE<,=
MCE"/'VPU)+0^'-_CV<YC-AO>#,L/8NLWKOX 4$L#!!0    ( "=(J%!&OIJU
MQ0$  #<$   9    >&PO=V]R:W-H965T<R]S:&5E=#(Q+GAM;&U486^D(!#]
M*X0?4%QW;>U&3;IMFKOD+MGT<M?/K(Y*"F(!U_;?%]!Z=LL7888W;]X,C-DH
MU8MN 0QZ$[S3.6Z-Z?>$Z+(%0?65[*&S)[54@AIKJH;H7@&M?)#@)(ZB:R(H
MZW"1>=]1%9D<#&<='!72@Q!4O1^ RS''&_SI>&)-:YR#%%E/&_@#YF]_5-8B
M"TO%!'2:R0XIJ'-\M]D?$H?W@'\,1KW:(U?)2<H79_RL<APY0<"A-(Z!VN4,
M]\"Y([(R7F=.O*1T@>O])_NCK]W6<J(:[B5_9I5I<YQB5$%-!VZ>Y/@#YGH2
MC.;B?\$9N(4[)39'*;GV7U0.VD@QLU@I@KY-*^O\.DXG23J'A0/B.2!> E*?
MATR)O/(':FB1*3DB-?6^I^Z*-_O8]J9T3M\*?V;%:^L]%YOT.B-G1S1C#A,F
M7F,6!+'L2XHXE.(0?PN/P^';H,*M#]]^47@3)M@%"7:>8/>%(+TH,82Y#2=)
M@DF2[P2WT462$.:RDV1U<0)4XY^L1J4<.C\N*^\R%7>QO_C_\&FD?E/5L$ZC
MDS3V^?A+KJ4T8*5$5U9+:Z=X,3C4QFUO[%Y-;WDRC.SG,27+OZ+X %!+ P04
M    "  G2*A0,/+R%<$!   W!   &0   'AL+W=O<FMS:&5E=',O<VAE970R
M,BYX;6QM5.V.VR 0?!7$ QP)B>_:R+9TN:IJI5:*KNKU-['7-CH^7,#Q]>T+
MV'%]*7\"NYZ=F04V^:C-J^T ''J30MD"=\[U!T)LU8%D]D[WH/R71AO)G ]-
M2VQO@-6Q2 I"-YM[(AE7N,QC[F3*7 ].< 4G@^P@)3-_CB#T6. MOB:>>=NY
MD"!EWK,6?H#[V9^,C\C"4G,)RG*MD(&FP(_;PS$+^ AXX3#:U1Z%3LY:OX;@
M:UW@33 $ BH7&)A?+O $0@0B;^/WS(D7R5"XWE_9/\?>?2]G9N%)BU^\=EV!
M/V!40\,&X9[U^ 7F?C*,YN:_P06$AP<G7J/2PL9?5 W6:3FS>"N2O4TK5W$=
M9_YK6;J S@7TIH!,0M'Y)^98F1L](C.=?<_"%6\/U)]-%9+Q*.(W;][Z[*7<
M?J0YN02B&7.<,'2-61#$LR\2-"5QI/^5TW3Y+NEP%\MW[QSNT@3[),$^$NS?
M$>QO6DQALK1(EA3)$@3W-R(IS,.-"%E=G 33QB=K4:4'%<=EE5VFXI'&B_\'
MGT;J.S,M5Q:=M?//)UYRH[4#;V5SY[UT?HJ70$#CPO;![\WTEJ? Z7X>4[+\
M5Y1_ 5!+ P04    "  G2*A0P08,:+@!  #2 P  &0   'AL+W=O<FMS:&5E
M=',O<VAE970R,RYX;6QM4]M.XS 0_17+'X#;M$"IDD@4A':E7:EBM?#L)I/$
MPI=@.PW[]SMV0@B0%]LSGG/FS'B<]L:^N ; DS<EM<MHXWV[9\P5#2CN+DP+
M&F\J8Q7W:-J:N=8"+R-(29:L5E=,<:%IGD;?T>:IZ;P4&HZ6N$XI;O\=0)H^
MHVOZ[G@4=>.#@^5IRVOX _YO>[1HL8FE% JT$T83"U5&;]?[PS;$QX G ;V;
MG4FHY&3,2S!^EAE=!4$@H?"!@>-VACN0,A"AC->1DTXI W!^?F=_B+5C+2?N
MX,[(9U'Z)J,[2DJH>"?]H^E_P%C/)25C\;_@#!+#@Q+,41CIXDJ*SGFC1A:4
MHOC;L L=]WZXN;H>8<N 9 0D$V 7\[ A451^SSW/4VMZ8H?>MSP\\7J?8&^*
MX(RMB'<HWJ'WG*]O=BD[!Z(QYC#$)/.8*8(A^Y0B64IQ2+[!DV7X9E'A)L(W
MGQ1NE@FVBP3;2+#]1'#SI<3O,3C77Y*P64\5V#I.DR.%Z72<Y)EW&MC;)+[)
M1_@P[;^YK85VY&0\OFSL?V6,!Y2RNL 1:O"#38:$RH?C-9[M,&:#X4T[_B V
M?>/\/U!+ P04    "  G2*A0I[I2?K8!  #2 P  &0   'AL+W=O<FMS:&5E
M=',O<VAE970R-"YX;6QM4]MNW" 0_17$!P0ON]FD*]M2-E'52HFT2M7VF;7'
M-@IX7,#KY.\+V''<U"_ #.><N3"D YH7VP X\JI5:S/:.-<=&+-% UK8*^R@
M]3<5&BV<-TW-;&= E)&D%>-)LF=:R);F:?2=3)YB[Y1LX62([;46YNT("H>,
M;NB[XUG6C0L.EJ>=J.$'N)_=R7B+S2JEU-!:B2TQ4&7T;G,X[@(^ GY)&.SB
M3$(E9\278'PO,YJ$A$!!X8*"\-L%[D&I(.33^#-ITCED("[/[^I?8^V^EK.P
M<(_JMRQ=D]%;2DJH1*_<,P[?8*KGFI*I^$>X@/+PD(F/4:"R<25%;QWJ2<6G
MHL7KN,LV[L-XL]]/M'4"GPA\)MS&.&P,%#-_$$[DJ<&!F+'WG0A/O#EPWYLB
M.&,KXIU/WGKO)>?))F67(#1ACB.&+S ?".;5YQ!\+<21_T?GZ_3M:H;;2-\N
MHW_9K@OL5@5V46#W3XG\4XEKF,]!V**G&DP=I\F2 OLV3O+".P_L'8]O\@$?
MI_U)F%JVEIS1^9>-_:\0'?A4DBL_0HW_8+.AH'+A>.//9ARST7#833^(S=\X
M_PM02P,$%     @ )TBH4$FZ$9JX 0  T@,  !D   !X;"]W;W)K<VAE971S
M+W-H965T,C4N>&UL;5/;;MP@$/T5Q <$+^MLTY5M*9NH:J566J5J^\S:8QL%
M/"[@=?KW!>RX;N(78(9SSEP8LA'-LVT!''G1JK,Y;9WKCXS9L@4M[ WVT/F;
M&HT6SINF8;8W(*I(THKQ)#DP+61'BRSZSJ;(<'!*=G VQ Y:"_/G! K'G.[H
MJ^-)-JT+#E9DO6C@.[@?_=EXBRTJE=3068D=,5#G]'YW/*4!'P$_)8QV=2:A
MD@OB<S"^5#E-0D*@H'1!0?CM"@^@5!#R:?R>->D2,A#7YU?U3[%V7\M%6'A
M]4M6KLWI'245U&)0[@G'SS#7<TO)7/Q7N(+R\)")CU&BLG$EY6 =ZEG%IZ+%
MR[3++N[C=',XS+1M I\)?"'<Q3AL"A0S?Q1.%)G!D9BI][T(3[P[<M^;,CAC
M*^*=3]YZ[[7@29JQ:Q":,:<)PU>8W8)@7GT)P;="G/@[.M^F[S<SW$?Z?AW]
MXWY;(-T42*- ^E^)MV]*W,(<W@1AJYYJ,$V<)DM*'+HXR2OO,K#W/+[)/_@T
M[=^$:61GR06=?]G8_QK1@4\EN?$CU/H/MA@*:A>.'_S93&,V&0[[^0>QY1L7
M?P%02P,$%     @ )TBH4,ZX+D[0 0  G 0  !D   !X;"]W;W)K<VAE971S
M+W-H965T,C8N>&UL=53;;MP@$/T5Q <$F[TD6=F6LJFJ5FJE5:HVSZP]OBA@
M7,#KY.\#V.LZ#GTQS'#FG)DQ0S)(]:)K (->!6]UBFMCN@,A.J]!,'TC.VCM
M22F58,::JB*Z4\ *'R0XH5&T)X(U+<X2[SNI+)&]X4T+)X5T+P13;T?@<DAQ
MC*^.IZ:JC7.0+.E8!;_ _.Y.REID9BD: :UN9(L4E"E^B _'O<-[P)\&!KW8
M(U?)6<H79WPO4ARYA(!#;AP#L\L%'H%S1V33^#MQXEG2!2[W5_:OOG9;RYEI
M>)3\N2E,G>([C HH6<_-DQR^P53/#J.I^!]P 6[A+A.KD4NN_1?EO3923"PV
M%<%>Q[5I_3I,_->P< "= N@J@(Q"/O,OS+ L47) :NQ]Q]POC@_4]B9W3M\*
M?V:3U]9[R6ATFY"+(YHPQQ%#%YAX1A#+/DO0D,21?@JGX?!-,,.-#]\LU>\W
M88)MD&#K";8?2KQ;E1C"W(=%=D&1W6>".%J)A##_Z>0^*+(/$-"52 BS;A=9
MW X!JO)SH5$N^];/Y,([C]X#];?K'WR<VY],54VKT5D:>T?]32JE-&!3B6YL
MP;5]*F:#0VG<]M;NU3@PHV%D-[T%9'Z0LG=02P,$%     @ )TBH4%S*S 6W
M 0  T@,  !D   !X;"]W;W)K<VAE971S+W-H965T,C<N>&UL;5/MCIP@%'T5
MP@,L(^-LMQ,UV=FF:9,VF6S3]C>C5R4+7@LX;M^^@(ZU6_\ ]W+.N1]<LA'-
MBVT!''G5JK,Y;9WKCXS9L@4M[!WVT/F;&HT6SINF8;8W(*I(THKQW>Z>:2$[
M6F31=S9%AH-3LH.S(7;06IC?)U XYC2A-\>S;%H7'*S(>M' -W#?^[/Q%EM4
M*JFALQ([8J#.Z6-R/*4!'P$_)(QV=2:AD@OB2S ^5SG=A81 0>F"@O#;%9Y
MJ2#DT_@U:](E9""NSS?UC[%V7\M%6'A"]5-6KLWI R45U&)0[AG'3S#7<Z!D
M+OX+7$%Y>,C$QRA1V;B2<K .]:SB4]'B==IE%_=QNCG<:-L$/A/X0GB(!#8%
MBIE_$$X4F<&1F*GWO0A/G!RY[TT9G+$5\<XG;[WW6O DS=@U",V8TX3A*TRR
M()A77T+PK1 G_A^=;]/WFQGN(WV_COY^ORV0;@JD42#]I\3#FQ*W,/=O@K!5
M3S68)DZ3)24.79SDE7<9V$<>W^0O?)KVK\(TLK/D@LZ_;.Q_C>C I[*[\R/4
M^@^V& IJ%X[O_-E,8S89#OOY!['E&Q=_ %!+ P04    "  G2*A0"UZ=%<8!
M   W!   &0   'AL+W=O<FMS:&5E=',O<VAE970R."YX;6QM5&%OVR 0_2N(
M'U!LDK1I9%MJ.E6;M$E1IW6?B7VV4<&X@./NWP^PZWDI7PQWO'OO[N"<C4J_
MFA; HG<I.I/CUMK^0(@I6Y#,W*@>.G=2*RV9=:9NB.DUL"H$24%HDMP2R7B'
MBRSX3KK(U& %[^"DD1FD9/K/$80:<YSB#\<S;UKK':3(>M; 3["_^I-V%EE8
M*BZA,UQU2$.=XX?T<-QY? "\<!C-:H]\)6>E7KWQK<IQXA," :7U#,PM%W@$
M(3R12^-MYL2+I ]<[S_8GT+MKI8S,_"HQ&]>V3;'>XPJJ-D@[+,:O\)<SPZC
MN?CO< 'AX#X3IU$J8<(7E8.Q2LXL+A7)WJ>5=V$=IY/;[1P6#Z!S %T"]D&'
M3$(A\R_,LB+3:D1ZZGW/_!6G!^IZ4WIG:$4X<\D;Y[T4-+W+R,43S9CCA*$K
M3+H@B&-?)&A,XD@_A=-X^"::X2:$;];J]YLXP39*L T$V_]*W%^5&,/<QT5V
M49'=9P*:7(G$,->=)*N+DZ";\&0-*M70A7%9>9>I>*#AXO_!IY'ZP73#.X/.
MRKKG$RZY5LJ"2R6Y<;FT;HH70T!M_?;.[?7TEB?#JGX>4[+\*XJ_4$L#!!0
M   ( "=(J% N!5-AMP$  -(#   9    >&PO=V]R:W-H965T<R]S:&5E=#(Y
M+GAM;&U3VV[<(!#]%<0'A%WLI.G*MI1-5;52(ZU2M7EF[;&- L8%O$[^O@-V
M7"?U"S##.6<N#-EH[+-K 3QYT:IS.6V][P^,N;(%+=R5Z:'#F]I8+3R:MF&N
MMR"J2-**\=WNAFDA.UIDT7>R168&KV0')TO<H+6PKT=09LSIGKXY'F73^N!@
M1=:+!GZ"_]6?+%IL4:FDALY)TQ$+=4[O]H=C&O 1\%O"Z%9G$BHY&_,<C.]5
M3G<A(5!0^J @<+O /2@5A#"-/[,F74(&XOK\IOXUUHZUG(6#>Z.>9.7;G-Y2
M4D$M!N4?S?@-YGJN*9F+_P$74 @/F6",TB@75U(.SAL]JV J6KQ,N^SB/DXW
M-]<S;9O 9P)?"+<Q#IL"Q<R_""^*S)J1V*GWO0A/O#]P[$T9G+$5\0Z3=^B]
M%)SSC%V"T(PY3AB^PNP7!$/U)03?"G'D_]'Y-CW9S#")]&0=_7.R+9!N"J11
M('U78O*AQ"U,^B$(6_54@VWB-#E2FJ&+D[SR+@-[Q^.;_(-/T_X@;",[1\[&
MX\O&_M?&>,!4=E<X0BU^L,504/MP_(1G.XW99'C3SS^(+=^X^ M02P,$%
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
M8+M1FUGI1;-WYIO*5JC5:X'"3>Y=M:-)4XX:M- $L\)3WN<0" I1HI4Y^CO
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
M1X7C;+1V@(*+&[Q"+3ZPJ9#0.#^]Q;D9K]E8.-W'%\2F9US^ U!+ P04
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
M69+$.;'R7<D=1@IBI !&Z&"DBQPNQ5*1PA 9")$!$,[-V6>+%''J'%P):+(
M!LE!D!P B1V0_#]N!Z2)89 U"+(&0%8."*1Q02#-7XY&M6BP;01 B$7?@$2Y
MP_(/D85!LW;6$GXQG5]X%;MV4C>.F76:+H^1;H>.?:^GCFF3?\+8D?45\TO3
M">_(I&JVIB6>&9-$,08/ZO+4:DI.&TK.4B\SM>9V5-B-9/TX!M$TBW>_ 5!+
M P04    "  G2*A0<* CTA "  !&!@  &0   'AL+W=O<FMS:&5E=',O<VAE
M970T-2YX;6QUE6V/FS ,Q[\*XOTN$)XKBK3>-&W2)E4W;7N=MFY!%PA+TG+[
M]DL"AQ!X;YK8^=L_.U5,.0CYJFH [;VUO%-[O]:ZWQ&BSC6T3#V)'CIS<A6R
M9=J8\D94+X%=7%#+"0V"E+2LZ?RJ=+ZCK$IQU[SIX"@]=6];)O\>@(MA[X?^
MN^.EN=7:.DA5]NP&/T#_[(_26&3.<FE:Z%0C.D_"=>]_#'>',+ !3O&K@4$M
M]IYMY23$JS6^7O9^8"L"#F=M4S"S/. 9.+>93!U_IJ3^S+2!R_U[]L^N>=/,
MB2EX%OQW<]'UWL]][P)7=N?Z10Q?8&HH\;VI^V_P &[DMA+#. NNW*]WOBLM
MVBF+*:5E;^/:=&X=QI,LF<+P #H%T#F CKV,(%?Y)Z9954HQ>'*\_)[9_SC<
M47,W9^MT5^'.3/'*>!]51(N2/&RB27,8-72AH4D^:XC)/T,H"J$N0;R$1,$*
M,FI2I^F<)L]B'!*AD B!A"O(J$D6D#"D(4Z)44J,4.B*$F\H15+@D 2%) @D
M6D&2#21*<4:*,E*$$:\86TU,<4:&,C*$D:P86\W_&#G*R!%&NF+DF[NB11'@
ME *E% @E6U&*#>5#F$8XQ0PR]#4&""=?/\=@\U1H3K,5B"PF@)VPWYF\-9WR
M3D*;8>*>_%4(#29C\&2*KLU0GPT.5VVW9@9Y<IQLHZ%%/TUM,G\ZJG]02P,$
M%     @ )TBH4%]'.)_] 0  -04  !D   !X;"]W;W)K<VAE971S+W-H965T
M-#8N>&UL?53MCIP@%'T5XP,L?LY,)VJR8].T29M,MFG[F]'K1Q;$ H[;MR^@
MXUHE_2-P.>?><Q!N,C+^*AH Z;Q1THG4;:3LSPB)H@&*Q1/KH5,[%>,42[7D
M-1(]!UP:$B4H\+P#HKCMW"PQL2O/$C9(TG9PY8X8*,7\SP4(&U/7=Q^!E[9N
MI Z@+.EQ#=]!_NBO7*W0DJ5L*72B99W#H4K=9_^<QQIO #];&,5J[F@G-\9>
M]>)+F;J>%@0$"JDS8#7<(0="="(EX_><TUU*:N)Z_LC^R7A77FY80,[(K[:4
M3>J>7*>$"@]$OK#Q,\Q^8M>9S7^%.Q %UTI4C8(18;Y.,0C)Z)Q%2:'X;1K;
MSHSCG/]!LQ."F1 L!#_^+R&<">$[(3+F)V7&ZD<L<99P-CI\^ED]UG?"/X?J
M, L=-&=G]I1;H:+W+ P_).BN$\V8RX0)5AA_02"5?2D1V$I<@AT]^+= OD><
M8GN%T&HB-/QH+=#S-R8F3&PPG<$<H_BX$6(#>8%=2F25$NVDA)&WD1+MJIPV
M:O,]Y!#99<16&;%%QO9$XKW9.#QMA%A T>&PD8)6MXT"K\W#%$[!AD[J_[J*
M+F__.="W=1._J)XP/>'W-%-#^89YW7;"N3&IWH*YL15C$I1&[TG):U0/6Q8$
M*JFG1S7GTTN>%I+U<Y-"2Z?,_@)02P,$%     @ )TBH4#J&W9_5 0  7@0
M !D   !X;"]W;W)K<VAE971S+W-H965T-#<N>&UL?53;CILP$/T5BP]8$R#I
M*@*D3:JJE5HIVJK=9P>&B]87:CMA^_<=VRQ+LVA?L&=\SIF+/>2CTL^F [#D
M17!IBJBS=MA3:JH.!#-W:@"))XW2@EDT=4O-H('5GB0X3>)X1P7K953FWG?2
M9:XNEO<23IJ8BQ!,_ST 5V,1;:)7QV/?=M8Y:)D/K(6?8'\-)XT6G57J7H T
MO9)$0U-$#YO],7-X#_C=PV@6>^(J.2OU[(QO=1'%+B'@4%FGP'"YPA$X=T*8
MQI]),YI#.N)R_ZK^Q=>.M9R9@:/B3WUMNR*ZCT@-#;MP^ZC&KS#5LXW(5/QW
MN )'N,L$8U2*&_\EU<58)2853$6PE[#VTJ]C.-GM)MHZ(9D(R4S V!\1THF0
MOA%\-VG(S)?ZF5E6YEJ-1(?+&IA[$YM]BLVLG-/WSI]AM0:]US+-DIQ>G="$
M.01,LL!L9@1%]3E$LA;BD+RCWP0XOD?<;]<CI*M%I)Z?_5=$NBZ0K0ID*P+9
M31<"9NLQTF/BFS(^0H0DZ.):!.C6OV!#*G61UC5@X9V'Y"%QUWKC/^#PA+?^
M)A,F[P?3;2\-.2N+C\9?;:.4!4PPOL/<.ASVV>#06+?]A'L=GGPPK!JF::;S
M+Z7\!U!+ P04    "  G2*A0'H[I*V #  "S#P  &0   'AL+W=O<FMS:&5E
M=',O<VAE970T."YX;6R55]N.VC 4_)4H']#$CG-A!4A<5+52*ZVV:ON<!0/1
M)G&:&-C^?9T+*=CC7?:%),Z<<V9\S,"9GD7]TAPXE\YKD9?-S#U(63UX7K,Y
M\")M/HF*E^K-3M1%*M5CO?>:JN;IM@LJ<H_Z?N05:5:Z\VFW]EC/I^(H\ZSD
MC[73'(LBK?\N>2[.,Y>XEX6G;'^0[8(WGU;IGO_@\F?U6*LG;\RRS0I>-IDH
MG9KO9NZ"/*PI:P,ZQ*^,GYNK>Z>5\BS$2_OP=3MS_981S_E&MBE2=3GQ%<_S
M-I/B\6=(ZHXUV\#K^TOVSYUX)>8Y;?A*Y+^SK3S,W,1UMGR7'G/Y),Y?^" H
M=)U!_3=^XKF"MTQ4C8W(F^[3V1P;*8HABZ)2I*_]-2N[ZWG(?PG# 70(H/<&
M!$- , 80]F8 &P+8&-#AO5Y)MS7K5*;S:2W.3MUWMTK;0T0>F-K\3;O8[77W
M3NU.HU9/\X"%4^_4)AHPRQY#KS!D1'@J^UB"HA)+:H33VP(K$Y&$N$( 101=
M/+N.CS0-/23J(&4'80F-8XT(0,4!33 7!KDP@TO =#((HU.Y [-&& O9$)(-
M08()3A#!!-'[.Q\9>QH$49)H<DT432:,:8+-<E;!,>0;W]$=@ E]C2["$(TL
MJF4AFT"R"2A"<8()3#!YOSL3\\1'OO[]-$%A'&@=7)O%K'*)C[W(OZ,["!0&
M&F$(T@\3+&=C;'%/ NI8K(M =UP0^GZ3!LS-=X@%$UVTB6*,&JK->G;5V&Z)
MZ;>@3P 41CIE!-)=#I:S,<:F3(!3AK84V"J)Z95FGT+3Q6)"=-$F2IU@JJM&
MWFRCC,V9(+LT. -0:!PM (I\G?$'W)E@>R; ,R/+GPV"39.8KFGV*3$Z0"9$
M_P4&*,J24%<-7-JJ&MLT0=9I< :@2#=J" ITQA]P:HJ=F@+KC)@E!;9.:EJG
MT:<!<]LGJO\6 Q2EONY[H)Y=-;9JBJS3X Q 1I\@2#]9L)R-L>[4MV^Q*]*W
M_S\.>@ HBC06WM6X4?!ZWTURC;,1QU*V_SVO5L=I<4';<45;7ZHIDH#U%573
M)5A?T$"]"% FRBX#J?>?4C_.?D_K?58VSK.0:J[JQI^=$)(KO?XGY;L'-4&/
M#SG?R?8V5O=U/T;V#U)4PXCLC7/Z_!]02P,$%     @ )TBH4$%U]JW. 0
M(00  !D   !X;"]W;W)K<VAE971S+W-H965T-#DN>&UL?53;;MLP#/T5P1]0
MQ7::!(%MH,DP;, &!!VV/BLV?4%U\20Y[OY^E.2Z;AKTQ2*I<T@>B7(V*OUL
M6@!+7@27)H]::_L]I:9L03!SIWJ0N%,K+9A%5S?4]!I8Y4F"TV2UVE#!.AD5
MF8^==)&IP?).PDD3,PC!]+\#<#7F41R]!AZ[IK4N0(NL9PW\ ON[/VGTZ)RE
MZ@1(TRE)--1Y]!#OCZG#>\"?#D:SL(E3<E;JV3G?JSQ:N8: 0VE=!H;+!8[
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
M;C1\K^UK8=[E> D>&UKTTP4_F?]EK/X"4$L#!!0    ( "=(J% MN8OMMP$
M -8#   9    >&PO=V]R:W-H965T<R]S:&5E=#4T+GAM;&U3VXZ;,!#]%<L?
M$(-#VE4$2)NMJE9JI6BKML\.#&"M+]0V8?OW]870[(H7/#.<.7-F/"YG;5[L
M .#0JQ3*5GAP;CP28IL!)+,[/8+R?SIM)'/>-3VQHP'6QB0I",VR#T0RKG!=
MQMC9U*6>G. *S@;924IF_IY Z+G".;X%GGD_N! @=3FR'GZ ^SF>C??(RM)R
M"<IRK9"!KL*/^?%4!'P$_.(PVSL;A4XN6K\$YVM;X2P( @&-"PS,'U=X B$"
MD9?Q9^'$:\F0>&_?V#_'WGTO%V;A28O?O'5#A1\P:J%CDW#/>OX"2S\'C);F
MO\$5A(<');Y&HX6-7]1,UFFYL'@IDKVFDZMXS@O_+6T[@2X)=$V@J9=4*"K_
MQ!RK2Z-G9-+L1Q:N.#]2/YLF!.,HXC\OWOKHM2[RK"370+1@3@E#WV#R%4,\
M_UJ$;A4YT0T"NDVPWU2YCP3%&X+]-D&Q25!L$!3OVDR8AXA1$7/8'=X5(7=S
ME6#ZN%$6-7I2<9OOHNO2/M)X+__A:>._,]-S9=%%.W^[\0XZK1UX*=G.K]'@
M']GJ".A<,#]ZVZ152X[3X_**R/J4ZW]02P,$%     @ )TBH4&.6OT\J)
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
MZA$, 7_"?G$EYY%5*@!E!D19?]^"82B4=>F2Q#AA78"6<E/RH40#8IL,@&<
MLT,@WS%1$A%>F/FWMRF_)96@L(X3KQ(,,9,$H$RI5'>9N4X95R]!6E:& U,;
M&V_\GU$F[+8"&+%0"K'+E3)02H2<I$CU_@G/-U=>U/DS@(HDBE&*8X@7'3F$
M*9X9Z@4$R;+ K3ACHZDS\.;XR\09H6Y,DHBLP!@'"M9@SP*O3:93-AF-80(P
MT#@G&:@!'4\!A=,A$RF#6,\)8\X<#WK2+$-O5G*#5+,9^Q1NI+E7(RXBH8V_
MZT8[5D I:%%#X.]Z;*DJ:$)3.W0*8\*/AO.-T<V":5-A5W.=("HLQBQ@PG/&
MTY'X=S!%>XIL:%0L))JJ+)226X@6&LJ2D@C&WIC-YZXF38,A>Y/)E)VSWAB$
M];D-K(J-3(",AA[].Y]ZMA$-E=>.L;,Q"/JST7S*?D2) UY7$I(WD01@S@%E
MK\!8L^VQ4Q$1:S"XBAA0'A',VBEF/;V30N6CTQ%$!6X"\C@PA31(C4[2*&5)
MK*337HNO*E[49G!A)=P6H9 J,!MI*F\B1<8AI'0I3)5.*OJLEF[$ UHI:8J[
M-ADW:<@BIB\(4+$K0N2:Q.2QV1@58HT4E<XH-[,W&HR0N-P!$E<+M'4"<^<#
ME "C1I$(*=4A]+@IMEL1J /YH0-)9@6@U0O$1DZU<^E#92?IV.$!L'2+W'(S
MJY):C$45.##2,Z93'X @CR0D,XL<* HDQ"*6Y: PO8#_>NX8,8_A(/)_C>A&
MO+3'+738V]=Q&%\6;BP*H>]V6!Z#D($4(%G@#F85(P/@$"4:Q'P5<WLG(1LZ
MLZ%KW^(1-*BF9BM&:'<6MVJOGK*GHZ[)V4MR2C#A5;,K#8NZ9'1B=E-$@,,-
M9DV22:820T=B:# W-GX:1JCPTZ2X76M=C :.4,"FQJ\('VU%"*L)QL=1C8JQ
M#0?B6J)GOJ-EJ2RW(381NB4(@PC4Y)(5I!W788;U85CL%X!6Q;4G,4V2AAS&
M=<JJ+:2H(D>G"P.K8)$%] S6] M&CT"<*GI";X\L;GZO_"TU"@6LA"Y6$N?/
M#"0B6.(6B $'+PIMHV=K<+ N@$\V+/9SZ?UE!7!::L9+L:ER/<F@U0:K#2=D
MEJ)A@;OISI^T&!@4&,UP6?#J A!\#ZZ16IQ?(:CJKM/XA'C<8:6[<V%(8_"8
M%%"&-I ,UUBA3)210UU1&,AE:7H09K3<1+[L-FMZ=B:PB+*R79OBP6+$#X@@
M'8S1,%51,1FP2^E0WZ=AGG.4)+#>6W1!\AHF>V,0;.;D=3V"Y9%6^3*&QM=^
MF+(?J(RA$E\S7.!Z7Z/+0]7&^)#YC:>A\12U=(J(![)9X2BB&"/41DM;<,I!
MOTA&1MJZKY(DCS&2Z3#,B 6B.IQH4&3\BJVTCB*4$PC[S\7R=B-C*PGF/J2)
M1:W">%L S(64=QM*@R+)<9BYG+[/_AJ"#0L42(*&QD:.6%%Z%3P@-)]F*&,-
MO+T5@Y61&7-7WA!XKFBJ@ ?0B]BG)!!?.NS7(D%@0>P&(@TCJ\.%P!)V/S!U
M3&5%*G24I+;(T::$A:)(?799&TZSFU")QC"D%'S5#,"X!RRL4>;%F1]4XT&6
MSF0P"XQGQ6H%AA<"L<*X&\CG'6'F+HF*C102)*AHT:+.HK13*/@,/V\3X1:!
MN.E+1'H-1/*00C#+$.@Q!Y6%N(K+OQ9([%(T$GH[5J"T'=!URB,!"ZU'HF2)
MU?HMB!9:1XX-GH<.= KJ4VRCM:./NQENB4JC<,75 H>-!9;Q2MUY0:4GAN:X
M%[J!H-SZJ1B:Q%=21$LJPPUCC>N6Y;>2T%7%MP,BN05RBG40/,Q^@=$Q;![G
MBG^1FV0T!>/P>(2G#%K:.D@&E6-NDB6/^OLC%X;@P-'7DGEWDG,=VI$R@BI9
M1P1U4[W4N@Q"^D/Q!I: )L!&_$+18ZFORM\,[_L9^"<IZ$;BP)55D()U//'0
M/4$S>3HF[W=/%W+P1 V5'XLL"9($'I-AV;V_I74+]C5E*XHRM$I(FBEJ1SP6
M(IGG:Q*A#7 $IHH<UH*AJCL :Q7*2GO:+K)I_*R4&08@!IX-+J3B4"R) >:4
M<H]Z 80E;ZZ**&)D/DD&HC7YMZ#S<?U59Q==;RN6' V>Q5!QRH>R+%ND=/U:
M;;A3KH+B[T0K@9^F.W)7I)4@VFQ!J'T1/&E@?<$#7^)7VX: L)P.E8BG26;*
M"&E/UR91_>MF=@1R4IB:2[ZH )%5V".3;&:2BE2AS8ZF90JB".2A8$'J)2UD
M3+[<^6&DS#X#.*NU,T&'V:C9N>JHV3';J23R99IBG)5^/\76F<C9GS=F9ZWE
M1\ QIHR@8 H=U2.1KT5T310I8YLL;R2J,#-C&DB0L2(PE@!7R;3,KP58ILC!
MPJ]2%F2OS':1:)6.LWPK)Q,ES0*Z\W[-U<LP'909BR30LM*]XW=438FE#0;;
M@A\1I.%")->66&06*7$=JRQSP]:SYJL48^_PD!<G<[V1Q^AWQR=:]XA4-9EU
MSRKAJ[+V5F EH_C 0/Z\,>H6U'LP^Z?L8UF-(-I@1I%="H3UGGR\^9P].6?#
MZ92YLZD,'6=ML('Q/\0PLC<?T9;DU-PH^5S UJY@?(,\PLZH7S71+4="]+;"
MX)=\ _8 $E_)Z4!29\/1C)VYDU%7PK>JB,E,S(K-!J,.M1H0%<'9@86[Q!,^
MD2*K3C=/GFO\3'UTU6BOK"PM'UZJE$2EG-)VY $V>NQ,7(I:C_O#$7N%^TQ1
M157?!W/ ^L:S":E?S^T#++5A:Y#.)L[ FV'C21_^'?>G1%+P<*Q&58JNUG,R
M=J8CBE@/^X,1]"1BG,_F[ <J==$)6^4E(Z<?"<&+/3'OL_$0?HS<L>4U1L,]
MC/%[,]MK30QQPM['[)HO4I$P'<FWCE4_502M."24P\A$A'<R0.VK&,79:("S
M#(884T2'!RR@#T ]?793+'ZF)'R"D2"92B=%O=E&B= 0RL!$;4CL@2W-]\J
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
MAT2UF$KF2]OMER\PR?Q0>AU6IJBD(>3-$@X[F\J#DJ*D;^4'RD<4&2E$&UT
M*3,N&'^GG9.EA9<J2U Y+]K5XUI/H8^3F@4:[ PPAX6;9^-!#5YOV-=G10Z#
M"4P&62BA4_DPQYO7S]]_9-NHD 5<MRK&DXJC_63EN7TPVMS^^!LVZ'OPLW&:
MCYT-0&W7P]) #4 .1DF*O4C0I+:"F$3"=X$\<*'D];(<QRQHH1@>UCD1!U-E
M<I%6I'Q0WE)0*S/!/#V>%Y>Q'YI/U#0T:BH4@,L$^I65T:*NEK8($*&27UY_
M^@UBA9Z[0S"2JJAI* TR2["4!ZMXSH:8WO/ '#N6DT9TLF"14>%<SE[>V8I
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
M/\"]STR)6=-J3[,L__[_ %!+ P04    "  G2*A0JR\V'C<"  #7"0  #0
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
MK>:#5O2@V_F@6WK0W7S0'3WH?C[HGAXD2R#CDI^$L.9K+8!KX7LM &SABRV
M;.&;+0!MX:LM@&WANRT ;N'++8!NX=LM &_AZZU ;^7KK4!OO<*S-GK8YNNM
M0&_EZZU ;^7KK4!OY>NM0&_EZZU ;^7KK4!OY>NM0&_EZVU ;^/K;4!OX^MM
M0&^[PED).BSAZVU ;^/K;4!OX^MM0&_CZVU ;^/K;4!OX^MM0&_CZ^U ;^?K
M[4!OY^OM0&_GZ^U ;[_"63<Z[.;K[4!OY^OM0&_GZ^U ;^?K[4!OY^OM0&_G
MZQV!WI&O=P1Z1[[>$>@=^7I'H'?DZQV!WO$*OU5.],Y-/:3M2QD.[3Y?NN33
M\&]K)G#G\GY,E\\X3_UV_T3I,FY)X?QZ\>_3>>I'1/CTOX;'OU!+ P04
M"  G2*A0D /W<]0!  "L(   $P   %M#;VYT96YT7U1Y<&5S72YX;6S-VEU/
MPC 4!N"_0G9K6.G'\"/ C7JK)/H'ZG9@"]O:M 7AW]L--=',1",D[PUC.]TY
M[T;S7#%[/ECRHWU3MWZ>E"'8&\9\7E*C?6HLM;&R,J[1(9ZZ-;,ZW^@U,3&9
M3%ENVD!M&(>N1[*8W=%*;^LPNCU>[UK/$VUM7>4Z5*9EN[;XUG3\WC!U5/=K
M?%E9?Q$7)*/[?>SBX[5Y$JL^8;^8\/W&[CS>][@CYZJ"_A3-K%953H7)MTV\
M)?76D2Y\212:.O6E=E0\!5>UZ_>\2^W"@VYB8[:OV9<%Z?ERA$--PP'ZRBDG
MA[@M:&A47SA^\G\-_-@-N7$TMBY67:@&'B]&6L:J9]W"4SXB=5NGH.)7PV/K
M\_VPK\9M^N]#+_RSZ%E_^-];/UT. 9)#@N10(#DRD!Q3D!R7(#FN0')<@^3@
M$Y0@**)R%%(YBJD<!56.HBI'896CN,I18.4HL@H4606*K )%5H$BJT"15:#(
M*E!D%2BR"A19!8JL$D56B2*K1)%5HL@J4625*+)*%%DEBJP215:)(JM"D56A
MR*I09%4HLBH4616*K I%5H4BJT*15:'(FJ'(FJ'(FJ'(FJ'(FIU1UOZ8-KIJ
M?TKR8LSF8S[K_Z2P> -02P$"% ,4    "  G2*A0'R// \     3 @  "P
M            @ $     7W)E;',O+G)E;'-02P$"% ,4    "  G2*A0)^B'
M#H(   "Q    $               @ 'I    9&]C4')O<',O87!P+GAM;%!+
M 0(4 Q0    ( "=(J%#X,^I6[@   "L"   1              "  9D!  !D
M;V-0<F]P<R]C;W)E+GAM;%!+ 0(4 Q0    ( "=(J%"97)PC$ 8  )PG   3
M              "  ;8"  !X;"]T:&5M92]T:&5M93$N>&UL4$L! A0#%
M  @ )TBH4//%Z1BA @  <0H  !@              ( !]P@  'AL+W=O<FMS
M:&5E=',O<VAE970Q+GAM;%!+ 0(4 Q0    ( "=(J%"IW6Q_> 0  )H6   8
M              "  <X+  !X;"]W;W)K<VAE971S+W-H965T,BYX;6Q02P$"
M% ,4    "  G2*A0%/,&760"  " "   &               @ %\$   >&PO
M=V]R:W-H965T<R]S:&5E=#,N>&UL4$L! A0#%     @ )TBH4)L-^4\; P
M3PP  !@              ( !%A,  'AL+W=O<FMS:&5E=',O<VAE970T+GAM
M;%!+ 0(4 Q0    ( "=(J%#DFJZB(P0  #$5   8              "  6<6
M  !X;"]W;W)K<VAE971S+W-H965T-2YX;6Q02P$"% ,4    "  G2*A07=K8
M2 D$  "N$@  &               @ ' &@  >&PO=V]R:W-H965T<R]S:&5E
M=#8N>&UL4$L! A0#%     @ )TBH4+7.;R^R 0  T@,  !@
M ( !_QX  'AL+W=O<FMS:&5E=',O<VAE970W+GAM;%!+ 0(4 Q0    ( "=(
MJ%!83L(JMP$  -(#   8              "  ><@  !X;"]W;W)K<VAE971S
M+W-H965T."YX;6Q02P$"% ,4    "  G2*A0G\.JR;8!  #2 P  &
M        @ '4(@  >&PO=V]R:W-H965T<R]S:&5E=#DN>&UL4$L! A0#%
M  @ )TBH4#]\=36V 0  T@,  !D              ( !P"0  'AL+W=O<FMS
M:&5E=',O<VAE970Q,"YX;6Q02P$"% ,4    "  G2*A0-U^ <[<!  #2 P
M&0              @ &M)@  >&PO=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+
M 0(4 Q0    ( "=(J% (L'%NM@$  -(#   9              "  9LH  !X
M;"]W;W)K<VAE971S+W-H965T,3(N>&UL4$L! A0#%     @ )TBH4-D9Y^FU
M 0  T@,  !D              ( !B"H  'AL+W=O<FMS:&5E=',O<VAE970Q
M,RYX;6Q02P$"% ,4    "  G2*A016LME[<!  #2 P  &0
M@ %T+   >&PO=V]R:W-H965T<R]S:&5E=#$T+GAM;%!+ 0(4 Q0    ( "=(
MJ%!/)'69MP$  -(#   9              "  6(N  !X;"]W;W)K<VAE971S
M+W-H965T,34N>&UL4$L! A0#%     @ )TBH4*YP18.U 0  T@,  !D
M         ( !4#   'AL+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4
M    "  G2*A00' &9[8!  #2 P  &0              @ $\,@  >&PO=V]R
M:W-H965T<R]S:&5E=#$W+GAM;%!+ 0(4 Q0    ( "=(J%#A/[_$MP$  -(#
M   9              "  2DT  !X;"]W;W)K<VAE971S+W-H965T,3@N>&UL
M4$L! A0#%     @ )TBH4!JM[^RU 0  T@,  !D              ( !%S8
M 'AL+W=O<FMS:&5E=',O<VAE970Q.2YX;6Q02P$"% ,4    "  G2*A0_;7N
MB[8!  #2 P  &0              @ $#.   >&PO=V]R:W-H965T<R]S:&5E
M=#(P+GAM;%!+ 0(4 Q0    ( "=(J%!&OIJUQ0$  #<$   9
M  "  ? Y  !X;"]W;W)K<VAE971S+W-H965T,C$N>&UL4$L! A0#%     @
M)TBH4##R\A7! 0  -P0  !D              ( ![#L  'AL+W=O<FMS:&5E
M=',O<VAE970R,BYX;6Q02P$"% ,4    "  G2*A0P08,:+@!  #2 P  &0
M            @ 'D/0  >&PO=V]R:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4
M Q0    ( "=(J%"GNE)^M@$  -(#   9              "  =,_  !X;"]W
M;W)K<VAE971S+W-H965T,C0N>&UL4$L! A0#%     @ )TBH4$FZ$9JX 0
MT@,  !D              ( !P$$  'AL+W=O<FMS:&5E=',O<VAE970R-2YX
M;6Q02P$"% ,4    "  G2*A0SK@N3M !  "<!   &0              @ &O
M0P  >&PO=V]R:W-H965T<R]S:&5E=#(V+GAM;%!+ 0(4 Q0    ( "=(J%!<
MRLP%MP$  -(#   9              "  ;9%  !X;"]W;W)K<VAE971S+W-H
M965T,C<N>&UL4$L! A0#%     @ )TBH4 M>G17& 0  -P0  !D
M     ( !I$<  'AL+W=O<FMS:&5E=',O<VAE970R."YX;6Q02P$"% ,4
M"  G2*A0+@538;<!  #2 P  &0              @ &A20  >&PO=V]R:W-H
M965T<R]S:&5E=#(Y+GAM;%!+ 0(4 Q0    ( "=(J%#M(WHTM $  -(#   9
M              "  8]+  !X;"]W;W)K<VAE971S+W-H965T,S N>&UL4$L!
M A0#%     @ )TBH4*RD@-?" 0  -P0  !D              ( !>DT  'AL
M+W=O<FMS:&5E=',O<VAE970S,2YX;6Q02P$"% ,4    "  G2*A0"C,Q^^8!
M   F!0  &0              @ %S3P  >&PO=V]R:W-H965T<R]S:&5E=#,R
M+GAM;%!+ 0(4 Q0    ( "=(J%#OB*^T[ $  .L$   9              "
M 9!1  !X;"]W;W)K<VAE971S+W-H965T,S,N>&UL4$L! A0#%     @ )TBH
M4(K@K2,K @  @P8  !D              ( !LU,  'AL+W=O<FMS:&5E=',O
M<VAE970S-"YX;6Q02P$"% ,4    "  G2*A0]P2Y86P"  #G!P  &0
M        @ $55@  >&PO=V]R:W-H965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0
M   ( "=(J%!\)%#T(P(  #P&   9              "  ;A8  !X;"]W;W)K
M<VAE971S+W-H965T,S8N>&UL4$L! A0#%     @ )TBH4,[^$=7C 0  P 0
M !D              ( !$EL  'AL+W=O<FMS:&5E=',O<VAE970S-RYX;6Q0
M2P$"% ,4    "  G2*A0@ H]M*X!  #2 P  &0              @ $L70
M>&PO=V]R:W-H965T<R]S:&5E=#,X+GAM;%!+ 0(4 Q0    ( "=(J%#T8#TB
M>P(  -\(   9              "  1%?  !X;"]W;W)K<VAE971S+W-H965T
M,SDN>&UL4$L! A0#%     @ )TBH4 HQ4LHE @  ? 8  !D
M ( !PV$  'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6Q02P$"% ,4    "  G
M2*A0PH?C=\<"  !_"@  &0              @ $?9   >&PO=V]R:W-H965T
M<R]S:&5E=#0Q+GAM;%!+ 0(4 Q0    ( "=(J%"4HY$],@(  &T&   9
M          "  1UG  !X;"]W;W)K<VAE971S+W-H965T-#(N>&UL4$L! A0#
M%     @ )TBH4#>U,_[Q 0  -@4  !D              ( !AFD  'AL+W=O
M<FMS:&5E=',O<VAE970T,RYX;6Q02P$"% ,4    "  G2*A05S6+F% "  "7
M!P  &0              @ &N:P  >&PO=V]R:W-H965T<R]S:&5E=#0T+GAM
M;%!+ 0(4 Q0    ( "=(J%!PH"/2$ (  $8&   9              "  35N
M  !X;"]W;W)K<VAE971S+W-H965T-#4N>&UL4$L! A0#%     @ )TBH4%]'
M.)_] 0  -04  !D              ( !?'   'AL+W=O<FMS:&5E=',O<VAE
M970T-BYX;6Q02P$"% ,4    "  G2*A0.H;=G]4!  !>!   &0
M    @ &P<@  >&PO=V]R:W-H965T<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    (
M "=(J% >CNDK8 ,  +,/   9              "  ;QT  !X;"]W;W)K<VAE
M971S+W-H965T-#@N>&UL4$L! A0#%     @ )TBH4$%U]JW. 0  (00  !D
M             ( !4W@  'AL+W=O<FMS:&5E=',O<VAE970T.2YX;6Q02P$"
M% ,4    "  G2*A07OB5AVL"  #-"   &0              @ %8>@  >&PO
M=V]R:W-H965T<R]S:&5E=#4P+GAM;%!+ 0(4 Q0    ( "=(J%"G7T; \@$
M 'X%   9              "  ?I\  !X;"]W;W)K<VAE971S+W-H965T-3$N
M>&UL4$L! A0#%     @ )TBH4$WH9)K+ 0  (00  !D              ( !
M(W\  'AL+W=O<FMS:&5E=',O<VAE970U,BYX;6Q02P$"% ,4    "  G2*A0
M,L,[L>P"  !Q#   &0              @ $E@0  >&PO=V]R:W-H965T<R]S
M:&5E=#4S+GAM;%!+ 0(4 Q0    ( "=(J% MN8OMMP$  -8#   9
M      "  4B$  !X;"]W;W)K<VAE971S+W-H965T-30N>&UL4$L! A0#%
M  @ )TBH4&.6OT\J)   3Z(  !0              ( !-H8  'AL+W-H87)E
M9%-T<FEN9W,N>&UL4$L! A0#%     @ )TBH4*LO-AXW @  UPD   T
M         ( !DJH  'AL+W-T>6QE<RYX;6Q02P$"% ,4    "  G2*A0N?]
M+'\$  !R)   #P              @ 'TK   >&PO=V]R:V)O;VLN>&UL4$L!
M A0#%     @ )TBH4*][ K;S 0  YR   !H              ( !H+$  'AL
M+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%     @ )TBH4) #]W/4
M 0  K"   !,              ( !R[,  %M#;VYT96YT7U1Y<&5S72YX;6Q0
52P4&     #\ /P K$0  T+4

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<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="idp6885841216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Indebtedness (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 01, 2018</div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_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<span></span>
</td>
<td class="nump">$ 13,600<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 (Year)</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">300<span></span>
</td>
<td class="nump">$ 239<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">624<span></span>
</td>
<td class="nump">$ 175<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<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_LinesOfCreditCurrent', window );">Line of Credit, Current</a></td>
<td class="text">&#160;<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_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 700<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">1.99%<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="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_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="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_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="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_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="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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">$ 50,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="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_DebtInstrumentFaceAmount', window );">Debt Instrument, Face Amount</a></td>
<td class="nump">$ 20,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=119993939&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=120520924&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=119993939&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=120391452&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=121572278&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=121590274&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=121590274&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=121590274&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=120391452&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_LinesOfCreditCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 carrying value as of the balance sheet date of the current portion of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</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(13))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&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_LinesOfCreditCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>26
<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="idp6783844768">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Income Taxes<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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 cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top; text-align: justify"> <td style="width: 0; text-align: right"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">12</div>)</div></td> <td style="text-align: justify"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Income Taxes</div></div></td> </tr>  </table> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The income tax expense included in the accompanying unaudited condensed consolidated statements of income principally relates to the Company&#x2019;s proportionate share of the pre-tax income of its wholly-owned subsidiaries. The determination of income tax expense for interim reporting purposes is based upon the estimated effective tax rate for the year, adjusted for the impact of any discrete items which are accounted for in the period in which they occur. <div style="display: inline; color: windowtext">The Company recorded tax expense of approximately <div style="display: inline; font-style: italic; font: inherit;">17.8%</div> and <div style="display: inline; font-style: italic; font: inherit;">21.9%</div> of income before income tax expense for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> respectively. </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_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://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 21<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32857-109319<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 S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330215-122817<br><br>Reference 3: 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 17<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32809-109319<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 S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 6.I.5.Q1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 5: 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 14<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32705-109319<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 270<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6424409&amp;loc=d3e44925-109338<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -URI http://asc.fasb.org/topic&amp;trid=2144680<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 30<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6424122&amp;loc=d3e41874-109331<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>27
<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="idp6645969904">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Leases<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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 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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">8</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Leases</div></div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">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: inherit;">12</div> months or less are <div style="display: inline; font-style: italic; font: inherit;">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: inherit;">not</div> included in the ROU assets or operating lease liabilities.&nbsp;These are expensed as incurred and recorded as variable lease expense.&nbsp;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.&nbsp;</div> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">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.&nbsp;ROU assets and operating lease liabilities are&nbsp;recognized at commencement date based on the net present value of fixed lease payments over the lease term.&nbsp;The Company's lease term&nbsp;includes&nbsp;options to extend or terminate the lease when it is reasonably certain that we will exercise that option.&nbsp;ROU assets will also be adjusted for any deferred or accrued rent. As the Company's&nbsp;operating leases do <div style="display: inline; font-style: italic; font: inherit;">not</div> typically provide an implicit rate,&nbsp;the Company uses&nbsp;its incremental borrowing rate based on the information available at commencement date in determining the present value of lease payments.&nbsp;Operating fixed lease expense is recognized on a straight-line basis over the lease term.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div>    <!-- Field: /Page --> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,<br /> ($'s in thousands)</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">2020</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> </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> <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: 70%; font-size: 10pt; text-align: left">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: inherit;">305</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: inherit;">307</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">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: inherit;">57</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: inherit;">57</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; padding-bottom: 1pt">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: inherit;">7</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: inherit;">6</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: inherit;">369</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: inherit;">370</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">&nbsp;</td> <td 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">Cash paid for amounts included in measurement of 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">&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; text-align: left; padding-bottom: 2.5pt">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: inherit;">305</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: inherit;">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: 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> </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> <td 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; padding-bottom: 2.5pt">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: inherit;">2.45</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: inherit;">3.37</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> <td 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; padding-bottom: 2.5pt">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: inherit;">4.45</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: inherit;">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 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The aggregate future lease payments for operating leases as of <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>were as follows (in thousands):</div> <div style=" margin: 0">&nbsp;</div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; min-width: 700px;">  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; font-size: 10pt; text-align: left">Remainder of 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: inherit;">874</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: inherit;">1,121</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: inherit;">959</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: inherit;">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: inherit;">-</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: inherit;">-</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 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: inherit;">2,990</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; 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: inherit;">(163</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: 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: inherit;">2,827</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_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>28
<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="idp6778993136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Allowance for Credit Losses<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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_AllowanceForCreditLossesTextBlock', window );">Allowance for Credit Losses [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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">4</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Allowance for Credit Losses</div></div></td> </tr>  </table> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">Effective <div style="display: inline; font-style: italic; font: inherit;"> January 1, 2020, </div>the Company adopted ASU <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">13,</div> Financial Instruments &#x2013; Credit Losses (ASC <div style="display: inline; font-style: italic; font: inherit;">326</div>) which is required to be applied by means of a cumulative-effect adjustment to the opening retained earnings balance as of the adoption date. This ASU replaces the incurred loss impairment model with an expected credit loss impairment model for financial instruments, including trade receivables and contract assets. The amendment requires entities to consider forward-looking information to estimate expected credit losses, resulting in earlier recognition of losses for receivables that are current or <div style="display: inline; font-style: italic; font: inherit;">not</div> yet due, which were <div style="display: inline; font-style: italic; font: inherit;">not</div> considered under the previous accounting guidance. There was <div style="display: inline; font-style: italic; font: inherit;">no</div> impact to the Company&#x2019;s opening retained earnings or its consolidated balance sheet upon adoption.</div> <div style=" color: #212529; font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The Company is exposed to credit losses primarily through sales of products and services. The Company&#x2019;s expected loss allowance methodology for accounts receivable is developed using historical collection experience, current and future economic and market conditions and a review of the current status of customers' trade accounts receivables. Due to the short-term nature of such receivables, the estimate of amount of accounts receivable that <div style="display: inline; font-style: italic; font: inherit;"> may </div><div style="display: inline; font-style: italic; font: inherit;">not</div> be collected is based on aging of the accounts receivable balances and the financial condition of customers. Additionally, specific allowance amounts are established to record the appropriate provision for customers that have a higher probability of default. The Company&#x2019;s monitoring activities include timely account reconciliation, dispute resolution, payment confirmation, consideration of customers' financial condition and macroeconomic conditions. Balances are written off when determined to be uncollectible. The Company considered the current and expected future economic and market conditions surrounding the novel coronavirus ("COVID-<div style="display: inline; font-style: italic; font: inherit;">19"</div>) pandemic and included specific allowance amounts for any customer determined to have been significantly impacted. Estimates are used to determine the allowance. It is based on assessment of anticipated payment and all other historical, current and future information that is reasonably available.</div> <div style=" color: #212529; font-size: 10pt; margin: 0pt 0">&nbsp;</div> <div style=" margin: 0pt 0; color: #212529; font-size: 10pt"></div> <!-- Field: Page; Sequence: 9; Value: 1 -->   <div style=" margin: 0pt 0; color: #212529; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The following table provides a roll-forward of the allowance for credit losses that is deducted from the amortized cost basis of accounts receivable to present the net amount expected to be collected for the <div style="display: inline; font-style: italic; font: inherit;">three</div> months ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 (</div>in thousands):</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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">Allowance for Credit<br /> Losses</td> </tr> <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">Three Months Ended<br /> March 31, 2020</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; font-size: 10pt">Allowance - 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: inherit;">486</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">Provision for expected credit losses</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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; padding-bottom: 1pt">Amounts written off against the 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: inherit;">(5</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">Allowance - 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: inherit;">541</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_AllowanceForCreditLossesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 310<br> -URI http://asc.fasb.org/topic&amp;trid=2196771<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForCreditLossesTextBlock</td>
</tr>
<tr>
<td style="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>29
<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="idp6880651216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document And Entity Information - shares<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>May 01, 2020</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>
</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>
</tr>
<tr 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>
</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>
</tr>
<tr 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>
</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>
</tr>
<tr 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>
</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>
</tr>
<tr 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">false<span></span>
</td>
<td class="text">&#160;<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>
</tr>
<tr 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,482,844<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_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<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_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<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_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Mar. 31,  2020<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_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2020<span></span>
</td>
<td class="text">&#160;<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_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q1<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_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<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_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock<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_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_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>30
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
..report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

..report table.authRefData a {
	display: block;
	font-weight: bold;
}

..report table.authRefData p {
	margin-top: 0px;
}

..report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

..report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

..report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

..report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
..pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
..report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

..report hr {
	border: 1px solid #acf;
}

/* Top labels */
..report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

..report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

..report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

..report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

..report td.pl div.a {
	width: 200px;
}

..report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
..report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
..report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
..report .re, .report .reu {
	background-color: #def;
}

..report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
..report .ro, .report .rou {
	background-color: white;
}

..report .rou td {
	border-bottom: 1px solid black;
}

..report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
..report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
..report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

..report .nump {
	padding-left: 2em;
}

..report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
..report .text {
	text-align: left;
	white-space: normal;
}

..report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

..report .text .more {
	display: none;
}

..report .text .note {
	font-style: italic;
	font-weight: bold;
}

..report .text .small {
	width: 10em;
}

..report sup {
	font-style: italic;
}

..report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<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="idp6881046336">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - 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, 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="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">20<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="text"> <span></span>
</td>
<td class="nump">294<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">294<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 (in shares)</a></td>
<td class="nump">17<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</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">285<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">285<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 (in shares)</a></td>
<td class="num">(8)<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</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(271)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(271)<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">3,734<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">3,734<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 Mar. 31, 2019</a></td>
<td class="nump">7,414<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 Mar. 31, 2019</a></td>
<td class="nump">$ 74<span></span>
</td>
<td class="nump">29,476<span></span>
</td>
<td class="nump">115,536<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">144,499<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>
<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_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Share-based compensation (in shares)</a></td>
<td class="nump">28<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="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 );">Share-based compensation</a></td>
<td class="text"> <span></span>
</td>
<td class="nump">537<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">537<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options (in shares)</a></td>
<td class="nump">20<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="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_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">415<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">416<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_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units (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="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_AdjustmentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Net share settlement of restricted stock units</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(560)<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="num">(560)<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</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">3,891<span></span>
</td>
<td class="text"> <span></span>
</td>
<td class="nump">3,891<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 Mar. 31, 2020</a></td>
<td class="nump">7,483<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 Mar. 31, 2020</a></td>
<td class="nump">$ 75<span></span>
</td>
<td class="nump">$ 31,344<span></span>
</td>
<td class="nump">$ 135,443<span></span>
</td>
<td class="num">$ (587)<span></span>
</td>
<td class="nump">$ 166,275<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_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_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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: 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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 4: 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=120399700&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> -Subparagraph (a)<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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 8: 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<br><br>Reference 10: 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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 15: 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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 16: 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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 19: 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: 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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 23: 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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=120397183&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=120391452&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=120391452&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=120381028&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=120397183&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=120391452&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=120391452&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=120397183&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=120381028&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=120391452&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=120391452&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=120381028&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=120397183&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=120391452&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://www.xbrl.org/2009/role/commonPracticeRef<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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&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 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 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(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&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=120391452&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 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=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>32
<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="idp6783875728">
<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">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_ContractWithCustomerLiabilityRevenueRecognized', window );">Contract with Customer, Liability, Revenue Recognized</a></td>
<td class="nump">$ 667<span></span>
</td>
<td class="nump">$ 526<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">$ 517<span></span>
</td>
<td class="nump">$ 497<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=121604090&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>33
<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="idp6873522480">
<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">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">3</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Supplemental Cash Flow Information</div></div></td> </tr>  </table> <div style=" margin: 0pt 0; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="border-bottom: Black 1pt solid; white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">March 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">2020</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> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-style: italic; text-align: right">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; text-align: center">(in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cash paid for:</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="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Interest</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: inherit;">12</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: inherit;">47</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">Income taxes, net of refunds</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: inherit;">-</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: inherit;">(156</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">&nbsp;</td> <td 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">Non-cash investing and 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> </tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-indent: 10pt; font-size: 10pt; text-align: left">Capital additions accrued but not yet paid</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: inherit;">232</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: inherit;">108</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">Recognition of lease asset and liability</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: inherit;">-</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: inherit;">3,831</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_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>34
<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="idp6812075968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2020 </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_AllowanceForDoubtfulAccountsReceivable', window );">Allowance - beginning of period</a></td>
<td class="nump">$ 486<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_ProvisionForDoubtfulAccounts', window );">Provision for expected credit losses</a></td>
<td class="nump">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_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Amounts written off against the allowance</a></td>
<td class="num">(5)<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_AllowanceForDoubtfulAccountsReceivable', window );">Allowance - end of period</a></td>
<td class="nump">$ 541<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_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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.</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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&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 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121611835&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 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br><br>Reference 4: 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=121599878&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_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 direct write-downs of accounts receivable charged against the allowance.</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 (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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=121599337&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=120395209&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>35
<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="idp6614522752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Income Taxes (Details Textual)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_EffectiveIncomeTaxRateContinuingOperations', window );">Effective Income Tax Rate Reconciliation, Percent, Total</a></td>
<td class="nump">17.80%<span></span>
</td>
<td class="nump">21.90%<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_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://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 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_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></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<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>94</ContextCount>
  <ElementCount>303</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>43</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>4</UnitCount>
  <MyReports>
    <Report instance="ufpt-20200331.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/20200331/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Condensed Consolidated Statements of Income (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-income-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Income (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-stockholders-equity-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Disclosure - Note 1 - Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation</Role>
      <ShortName>Note 1 - Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ufpt-20200331.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/20200331/role/statement-note-2-revenue-recognition</Role>
      <ShortName>Note 2 - Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ufpt-20200331.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/20200331/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-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 4 - Allowance for Credit Losses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses</Role>
      <ShortName>Note 4 - Allowance for Credit Losses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 5 - Fair Value of Financial Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments</Role>
      <ShortName>Note 5 - Fair Value of Financial Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 6 - Share-based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation</Role>
      <ShortName>Note 6 - Share-based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 7 - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-7-inventories</Role>
      <ShortName>Note 7 - Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 8 - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-8-leases</Role>
      <ShortName>Note 8 - Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 9 - Income Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-9-income-per-share</Role>
      <ShortName>Note 9 - Income Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 10 - Segment Data</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-10-segment-data</Role>
      <ShortName>Note 10 - Segment Data</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 11 - Other Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-</Role>
      <ShortName>Note 11 - Other Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 12 - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-12-income-taxes</Role>
      <ShortName>Note 12 - Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 13 - Indebtedness</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-13-indebtedness</Role>
      <ShortName>Note 13 - Indebtedness</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 14 - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events</Role>
      <ShortName>Note 14 - Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 2 - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition-tables</Role>
      <ShortName>Note 2 - Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-2-revenue-recognition</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 3 - Supplemental Cash Flow Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/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/20200331/role/statement-note-3-supplemental-cash-flow-information-</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 4 - Allowance for Credit Losses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-tables</Role>
      <ShortName>Note 4 - Allowance for Credit Losses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 5 - Fair Value of Financial Instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments-tables</Role>
      <ShortName>Note 5 - Fair Value of Financial Instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-5-fair-value-of-financial-instruments</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 6 - Share-based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-tables</Role>
      <ShortName>Note 6 - Share-based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 7 - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-7-inventories-tables</Role>
      <ShortName>Note 7 - Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-7-inventories</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 8 - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-8-leases-tables</Role>
      <ShortName>Note 8 - Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-8-leases</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 9 - Income Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-9-income-per-share-tables</Role>
      <ShortName>Note 9 - Income Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-9-income-per-share</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 10 - Segment Data (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-10-segment-data-tables</Role>
      <ShortName>Note 10 - Segment Data (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-10-segment-data</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 11 - Other Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-tables</Role>
      <ShortName>Note 11 - Other Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Note 1 - Basis of Presentation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation-details-textual</Role>
      <ShortName>Note 1 - Basis of Presentation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-1-basis-of-presentation</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 2 - Revenue Recognition (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/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/20200331/role/statement-note-2-revenue-recognition-tables</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - 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/20200331/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>34</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 2 - Revenue Recognition - Contract Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/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>35</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 3 - Supplemental Cash Flow Information - Schedule of Supplemental Cash Flow Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/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>36</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 4 - Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-4-allowance-for-credit-losses-summary-of-allowance-for-doubtful-accounts-details</Role>
      <ShortName>Note 4 - Allowance for Credit Losses - Summary of Allowance for Doubtful Accounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 5 - 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/20200331/role/statement-note-5-fair-value-of-financial-instruments-financial-assets-measured-at-fair-value-on-a-recurring-basis-details</Role>
      <ShortName>Note 5 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 6 - Share-based Compensation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-details-textual</Role>
      <ShortName>Note 6 - Share-based Compensation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-tables</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 6 - Share-based Compensation - Compensation Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-compensation-cost-details</Role>
      <ShortName>Note 6 - Share-based Compensation - Compensation Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 6 - Share-based Compensation - Summary of Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-summary-of-stock-option-activity-details</Role>
      <ShortName>Note 6 - Share-based Compensation - Summary of Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>041 - Disclosure - Note 6 - Share-based Compensation - Restricted Stock Unit Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-6-sharebased-compensation-restricted-stock-unit-activity-details</Role>
      <ShortName>Note 6 - Share-based Compensation - Restricted Stock Unit Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 7 - Inventories - Summary of Inventory (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-7-inventories-summary-of-inventory-details</Role>
      <ShortName>Note 7 - Inventories - Summary of Inventory (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 8 - Leases - Lease Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-8-leases-lease-cost-details</Role>
      <ShortName>Note 8 - Leases - Lease Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>044 - Disclosure - Note 8 - Leases - Aggregate Future Lease Payments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-8-leases-aggregate-future-lease-payments-details</Role>
      <ShortName>Note 8 - Leases - Aggregate Future Lease Payments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 9 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-9-income-per-share-weighted-average-number-of-shares-used-to-compute-net-eps-details</Role>
      <ShortName>Note 9 - Income Per Share - Weighted Average Number of Shares Used to Compute Net EPS (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 10 - Segment Data (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-10-segment-data-details-textual</Role>
      <ShortName>Note 10 - Segment Data (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-10-segment-data-tables</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 10 - Segment Data - Net Sales by Market (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-10-segment-data-net-sales-by-market-details</Role>
      <ShortName>Note 10 - Segment Data - Net Sales by Market (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 11 - Other Intangible Assets (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-details-textual</Role>
      <ShortName>Note 11 - Other Intangible Assets (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-tables</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 11 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-definitelived-intangible-assets-details</Role>
      <ShortName>Note 11 - Other Intangible Assets - Definite-lived Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 11 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-11-other-intangible-assets-future-amortization-of-intangible-assets-details</Role>
      <ShortName>Note 11 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 12 - Income Taxes (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-12-income-taxes-details-textual</Role>
      <ShortName>Note 12 - Income Taxes (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-12-income-taxes</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 13 - Indebtedness (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-13-indebtedness-details-textual</Role>
      <ShortName>Note 13 - Indebtedness (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-13-indebtedness</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="ufpt-20200331.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 14 - Subsequent Events (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events-details-textual</Role>
      <ShortName>Note 14 - Subsequent Events (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ufpt.com/20200331/role/statement-note-14-subsequent-events</ParentRole>
      <Position>54</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-20200331.xml</File>
    <File>ufpt-20200331.xsd</File>
    <File>ufpt-20200331_cal.xml</File>
    <File>ufpt-20200331_def.xml</File>
    <File>ufpt-20200331_lab.xml</File>
    <File>ufpt-20200331_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy>http://fasb.org/us-gaap/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/srt/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<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="idp6807336096">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Inventories - Summary of Inventory (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<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_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 11,471<span></span>
</td>
<td class="nump">$ 10,540<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work in process</a></td>
<td class="nump">2,795<span></span>
</td>
<td class="nump">2,279<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,976<span></span>
</td>
<td class="nump">5,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_InventoryNet', window );">Total inventory</a></td>
<td class="nump">$ 20,242<span></span>
</td>
<td class="nump">$ 18,276<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=120391452&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=121566466&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 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=120391452&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=120391452&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=120391452&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>38
<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="idp6615623808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Segment Data (Details Textual)<br> xbrli-pure in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember', window );">Customer Concentration Risk [Member] | Revenue Benchmark [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_NumberOfMajorCustomers', window );">Number of Major Customers</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ufpt_NumberOfMajorCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.</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_NumberOfMajorCustomers</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>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</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>39
<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="idp6810824592">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Share-based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Share-based compensation related to:</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">2020</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> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; 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: inherit;">100</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: inherit;">100</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: inherit;">60</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: inherit;">7</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 ("RSUs")</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: inherit;">377</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: inherit;">187</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: inherit;">537</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: inherit;">294</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-left: 36px; 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 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<br /> </div> (in years)</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<br /> </div> (in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 40%; font-size: 10pt">Outstanding at December 31, 2019</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: inherit;">105,614</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: inherit;">25.34</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: inherit;">&nbsp;</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: inherit;">&nbsp;</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">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: inherit;">-</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: inherit;">&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: inherit;">&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: inherit;">&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: inherit;">(19,586</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">$</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.20</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: inherit;">&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: inherit;">&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 at March 31, 2020</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: inherit;">86,028</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: inherit;">26.28</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: inherit;">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: inherit;">1,025</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 March 31, 2020</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: inherit;">65,742</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: inherit;">23.04</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: inherit;">5.00</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: inherit;">989</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="text-indent: -10pt; padding-left: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Vested and expected to vest at March 31, 2020</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: inherit;">86,028</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: inherit;">26.28</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: inherit;">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: inherit;">1,025</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-left: 36px; 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">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 Average<br /> Award Date<br /> 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, 2019</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: inherit;">113,866</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: inherit;">28.36</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: inherit;">42,733</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: inherit;">49.96</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">Shares 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"><div style="display: inline; font-style: italic; font: inherit;">(28,244</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: inherit;">27.02</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 at March 31, 2020</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: inherit;">128,355</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: inherit;">31.58</div></td> <td style="padding-bottom: 2.5pt; 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_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=120381028&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=120381028&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=120381028&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=120381028&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>XML
<SEQUENCE>40
<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="idp6665286880">
<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">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; text-align: left; border-bottom: Black 1pt solid">Net sales of:</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">2020</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> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">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: inherit;">47,029</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: inherit;">46,410</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">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: inherit;">677</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: inherit;">645</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">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: inherit;">571</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: inherit;">273</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 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: inherit;">48,277</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: inherit;">47,328</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, Contract Asset, Contract Liability, and 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-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended<br /> March 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">2020</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> </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: inherit;">2,574</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: inherit;">2,507</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 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: inherit;">525</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: inherit;">991</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">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: inherit;">(667</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: inherit;">(526</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">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: inherit;">2,432</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: inherit;">2,972</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-left: 36px; 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="7" style="white-space: nowrap; 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="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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended<br /> March 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">2020</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> </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: inherit;">72</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: inherit;">65</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: inherit;">522</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: inherit;">85</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: inherit;">(404</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: inherit;">(106</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: inherit;">190</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: inherit;">44</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 receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract 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/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=121604090&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=121604090&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>41
<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="idp6787915904">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<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_AllowanceForDoubtfulAccountsReceivableCurrent', window );">Allowance for doubtful accounts</a></td>
<td class="nump">$ 541<span></span>
</td>
<td class="nump">$ 486<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_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="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_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="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_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="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_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="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_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="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_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="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_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">7,512,403<span></span>
</td>
<td class="nump">7,475,768<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_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">7,482,844<span></span>
</td>
<td class="nump">7,446,209<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_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_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=120391452&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=121611835&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=121599878&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_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=120391452&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=120391452&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=120391452&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=120391452&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=120391452&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=120391452&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=120391452&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=120391452&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=120391452&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>42
<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="idp6880820928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Share-based Compensation (Details Textual) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Feb. 24, 2020</div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 537<span></span>
</td>
<td class="nump">$ 294<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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>
</tr>
<tr 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="nump">$ 400<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_AwardTypeAxis=us-gaap_StockCompensationPlanMember', window );">Share-based Payment Arrangement [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_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation', window );">Adjustments to Additional Paid in Capital, Income Tax Benefit from Share-based Compensation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 348<span></span>
</td>
<td class="nump">164<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_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="nump">530<span></span>
</td>
<td class="nump">274<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="nump">$ 415<span></span>
</td>
<td class="nump">$ 285<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="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_SharesPaidForTaxWithholdingForShareBasedCompensation', window );">Share-based Payment Arrangement, Shares Withheld for Tax Withholding Obligation (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,195<span></span>
</td>
<td class="nump">8,132<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_SharesPaidForTaxWithholdingForShareBasedCompensationMarketPrice', window );">Shares Paid for Tax Withholding for Share Based Compensation Market Price (in dollars per share)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 49.99<span></span>
</td>
<td class="nump">$ 33.35<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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_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=120397183&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=120384995&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_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=120381028&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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="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=120381028&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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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=120381028&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=121586364&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_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=120381028&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_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=120397183&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=120381028&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=120391452&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=120391452&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=120381028&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_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_AwardTypeAxis=us-gaap_StockCompensationPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StockCompensationPlanMember</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>43
<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="idp6873534848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Basis of Presentation<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock', window );">Organization, Consolidation and Presentation of Financial Statements 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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">1</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Basis of Presentation</div></div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The interim condensed consolidated financial statements of UFP Technologies,&nbsp;Inc. (the &#x201c;Company&#x201d;) presented herein, have been prepared pursuant to the rules&nbsp;of the Securities and Exchange Commission for quarterly reports on Form&nbsp;<div style="display: inline; font-style: italic; font: inherit;">10</div>-Q and do <div style="display: inline; font-style: italic; font: inherit;">not</div> include all the information and note disclosures required by accounting principles generally accepted in the United States of America. These statements should be read in conjunction with the consolidated financial statements and notes thereto for the year ended <div style="display: inline; font-style: italic; font: inherit;"> December 31, 2019, </div>included in the Company's <div style="display: inline; font-style: italic; font: inherit;">2019</div> Annual Report on Form&nbsp;<div style="display: inline; font-style: italic; font: inherit;">10</div>-K, as filed with the Securities and Exchange Commission.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The condensed consolidated balance sheets as of <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;"> December 31, 2019, </div>the condensed consolidated statements of income for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> the condensed consolidated statements of stockholders&#x2019; equity for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> and the condensed consolidated statements of cash flows for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March&nbsp;</div><div style="display: inline; font-style: italic; font: inherit;">31,</div> <div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019</div> are unaudited but, in the opinion of management, include all adjustments (consisting of normal, recurring adjustments) necessary for a fair presentation of results for these interim periods. The condensed consolidated balance sheet as of <div style="display: inline; font-style: italic; font: inherit;"> December 31, 2019 </div>has been derived from the Company&#x2019;s annual financial statements that were audited by an independent registered public accounting firm but does <div style="display: inline; font-style: italic; font: inherit;">not</div> include all of the information and footnotes required for complete audited financial statements.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The results of operations for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month period ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>are <div style="display: inline; font-style: italic; font: inherit;">not</div> necessarily indicative of the results to be expected for the entire fiscal year ending <div style="display: inline; font-style: italic; font: inherit;"> December 31, 2020.</div></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Recent Accounting Pronouncements</div></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; background-color: white">In <div style="display: inline; font-style: italic; font: inherit;"> June 2016, </div>the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">13,</div> <div style="display: inline; font-style: italic;">Financial Instruments &#x2013; Credit Losses (Accounting Standards Codification (ASC) <div style="display: inline; font-style: italic; font: inherit;">326</div>)</div>. The Company adopted ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> on <div style="display: inline; font-style: italic; font: inherit;"> January 1, 2020. </div></div><div style="display: inline; color: windowtext">See Note <div style="display: inline; font-style: italic; font: inherit;">4</div> for further details</div><div style="display: inline; background-color: white">.</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 style="display: inline; background-color: white">In <div style="display: inline; font-style: italic; font: inherit;"> January 2017, </div>the FASB issued ASU&nbsp;<div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04,</div>&nbsp;<div style="display: inline; font-style: italic;">Intangibles&#x2014;Goodwill and Other (ASC <div style="display: inline; font-style: italic; font: inherit;">350</div>), Simplifying the Test for Goodwill Impairment</div>. The guidance removes Step <div style="display: inline; font-style: italic; font: inherit;">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: inherit;">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: inherit;"> December&nbsp;</div><div style="display: inline; font-style: italic; font: inherit;">15,</div> <div style="display: inline; font-style: italic; font: inherit;">2019.</div> The Company adopted ASC <div style="display: inline; font-style: italic; font: inherit;">350</div> on <div style="display: inline; font-style: italic; font: inherit;"> January 1, 2020 </div>and it did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on its financial condition or results of operations.</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 style="display: inline; font-style: italic;">Revisions</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">Certain revisions have been made to the <div style="display: inline; font-style: italic; font: inherit;"> December 31, 2019 </div>Condensed Consolidated Balance Sheet to conform to the current year presentation relating to a reclassification of long-term operating lease liabilities to current operating lease liabilities. The reclassification resulted in an increase of current operating lease liabilities of <div style="display: inline; font-style: italic; font: inherit;">$476</div> thousand and a decrease of long-term operating lease liabilities of <div style="display: inline; font-style: italic; font: inherit;">$476</div> thousand. These revisions had <div style="display: inline; font-style: italic; font: inherit;">no</div> impact on previously reported earnings, net income or cash flows and are deemed immaterial to the previously issued financial statements.</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_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 organization, consolidation and basis of presentation of financial statements disclosure.</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> -URI http://asc.fasb.org/topic&amp;trid=2122149<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -URI http://asc.fasb.org/topic&amp;trid=2197479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>44
<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="idp6810682880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Other Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; 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">Tradename<br /> &amp; Brand</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">Non-<br /> Compete</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">Customer<br /> List</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">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt">Estimated useful life</td> <td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</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">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 40%; 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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: inherit;">(80</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: inherit;">(200</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: inherit;">(2,443</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: inherit;">(2,723</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: inherit;">287</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: inherit;">262</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: inherit;">20,112</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: inherit;">20,661</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-left: 36px; min-; min-width: 700px;"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Remainder of:</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <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">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">943</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="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: inherit;">1,257</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: inherit;">1,257</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">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: inherit;">1,172</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">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: inherit;">1,164</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; 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: inherit;">14,868</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: 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: inherit;">20,661</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_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>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<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="idp6788154416">
<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">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_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 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">525<span></span>
</td>
<td class="nump">991<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 );">Revenue recognized</a></td>
<td class="num">(667)<span></span>
</td>
<td class="num">(526)<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_ContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="nump">2,432<span></span>
</td>
<td class="nump">2,972<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 - beginning of period</a></td>
<td class="nump">72<span></span>
</td>
<td class="nump">65<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_ContractWithCustomerAssetIncreaseDecreaseForUnbilledRevenueRecognized', window );">Increases due to revenue recognized - not invoiced to customers</a></td>
<td class="nump">522<span></span>
</td>
<td class="nump">85<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_ContractWithCustomerAssetReclassifiedToReceivable', window );">Decreases due to customer invoicing</a></td>
<td class="num">(404)<span></span>
</td>
<td class="num">(106)<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 - end of period</a></td>
<td class="nump">$ 190<span></span>
</td>
<td class="nump">$ 44<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=121604090&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=121556615&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=121556615&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=121604090&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=121556615&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=121604090&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=121556615&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_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=121604090&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>46
<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="idp6783893840">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Segment Data<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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 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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">10</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Segment Reporting</div></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; text-indent: 0in">The Company consists of a single operating and reportable segment.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">Revenues from customers outside of the United States are <div style="display: inline; font-style: italic; font: inherit;">not</div> material. <div style="display: inline; font-style: italic; font: inherit;"></div><div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">No</div> </div>customer comprised more than <div style="display: inline; font-style: italic; font: inherit;">10%</div> of the Company&#x2019;s consolidated revenues for both the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019.</div> All of the Company&#x2019;s assets are located in the United States.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">The Company&#x2019;s products are primarily sold to customers within the Medical, Automotive, Consumer, Aerospace and Defense, Industrial, and Electronics markets. Net sales by market for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019</div> are as follows (in thousands)</div>:</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended March 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="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2020</td> <td style="font-size: 10pt; font-weight: bold; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; font-style: normal; text-align: center; border-bottom: Black 1pt solid">2019 <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 700"><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">(1)</div></div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Market</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">Net Sales</td> <td style="border-bottom: Black 1pt solid; 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">%</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">Net Sales</td> <td style="border-bottom: Black 1pt solid; 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">%</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">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 40%; font-size: 10pt">Medical</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: inherit;">33,688</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: inherit;">69.8</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">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28,944</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: inherit;">61.2</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">Automotive</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,602</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: inherit;">9.5</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: inherit;">5,738</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: inherit;">12.1</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">Consumer</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,439</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: inherit;">7.1</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: inherit;">4,424</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: inherit;">9.3</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">Aerospace &amp; Defense</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,711</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: inherit;">5.6</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: inherit;">3,532</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: inherit;">7.5</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">Industrial</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: inherit;">4.0</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: inherit;">2,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: inherit;">5.3</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; padding-bottom: 1pt">Electronics</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: inherit;">1,920</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="border-bottom: 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: inherit;">4.0</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: inherit;">2,204</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="border-bottom: 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: inherit;">4.7</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: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">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: inherit;">48,277</div></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: left">&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: inherit;">100.0</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: inherit;">47,327</div></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: left">&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: inherit;">100.0</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 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; 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: 0.5in"></td> <td style="width: 0.25in"><div style="display: inline; font-size: 8pt"><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">(<div style="display: inline; font-style: italic; font: inherit;">1</div>)</div></div></td> <td style="padding-right: 5.4pt"><div style="display: inline; font-size: 8pt">Certain amounts for the <div style="display: inline; font-style: italic; font: inherit;">three</div> months ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2019 </div>were reclassified between markets to conform to the current period presentation.</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_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://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 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<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 34<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8981-108599<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 21<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8721-108599<br><br>Reference 4: 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 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br><br>Reference 5: 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 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 6: 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 32<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: 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 26<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8844-108599<br><br>Reference 8: 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 41<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<br><br>Reference 9: 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 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 10: 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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 12: 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 15<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8657-108599<br><br>Reference 13: 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 21<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8721-108599<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<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>47
<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="idp6605766672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Share-based Compensation<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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 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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">6</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Share-Based Compensation</div></div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">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=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The Company issues share-based awards through several plans that are described in detail in the notes to the consolidated financial statements for the year ended <div style="display: inline; font-style: italic; font: inherit;"> December 31, 2019. </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 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; min-width: 700px;">  <tr style="vertical-align: bottom"> <td style="white-space: nowrap; font-size: 10pt; color: #8497B0; text-align: center">&nbsp;</td> <td style="white-space: nowrap; font-size: 10pt; font-weight: bold">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,</td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; border-bottom: Black 1pt solid">Share-based compensation related to:</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">2020</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> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; 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: inherit;">100</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: inherit;">100</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: inherit;">60</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: inherit;">7</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 ("RSUs")</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: inherit;">377</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: inherit;">187</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: inherit;">537</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: inherit;">294</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; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">The total income tax benefit recognized in the condensed consolidated statements of income for share-based compensation arrangements was approximately <div style="display: inline; font-style: italic; font: inherit;">$348</div> thousand and <div style="display: inline; font-style: italic; font: inherit;">$164</div> thousand for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> respectively.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 27.9pt 0pt 27pt; font-size: 10pt">The following is a summary of stock option activity under all plans for the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month period ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020</div></div>:</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; text-align: center; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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 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<br /> </div> (in years)</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<br /> </div> (in thousands)</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 40%; font-size: 10pt">Outstanding at December 31, 2019</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: inherit;">105,614</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: inherit;">25.34</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: inherit;">&nbsp;</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: inherit;">&nbsp;</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">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: inherit;">-</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: inherit;">&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: inherit;">&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: inherit;">&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: inherit;">(19,586</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">$</td> <td style="padding-bottom: 1pt; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">21.20</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: inherit;">&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: inherit;">&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 at March 31, 2020</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: inherit;">86,028</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: inherit;">26.28</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: inherit;">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: inherit;">1,025</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 March 31, 2020</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: inherit;">65,742</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: inherit;">23.04</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: inherit;">5.00</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: inherit;">989</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="text-indent: -10pt; padding-left: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">Vested and expected to vest at March 31, 2020</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: inherit;">86,028</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: inherit;">26.28</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: inherit;">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: inherit;">1,025</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; color: Red; font-size: 10pt; text-align: center"></div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt; text-align: center"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">During the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month period ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020</div></div>, the total intrinsic value of all options exercised (i.e., the difference between the market price on the exercise date and the price paid by the employees to exercise the options) was approximately <div style="display: inline; font-style: italic; font: inherit;">$530</div> thousand, and the total amount of consideration received by the Company from the exercised options was approximately <div style="display: inline; font-style: italic; font: inherit;">$415</div> thousand. During the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month period ended <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font: inherit;"> March 31, 2019</div></div>, the total intrinsic value of all options exercised was approximately <div style="display: inline; font-style: italic; font: inherit;">$274</div> thousand, and the total amount of consideration received by the Company from the exercised options was approximately <div style="display: inline; font-style: italic; font: inherit;">$285</div> thousand. 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 both the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March&nbsp;</div><div style="display: inline; font-style: italic; font: inherit;">31,</div> <div style="display: inline; font-style: italic; font: inherit;">2020</div> and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> <div style="display: inline; color: windowtext"><div style="display: inline; font-style: italic; font: inherit;">no</div> shares were </div>surrendered for this purpose.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">On <div style="display: inline; font-style: italic; font: inherit;"> February 24, 2020</div><div style="display: inline; color: black">, the Company&#x2019;s Compensation Committee approved the award of <div style="display: inline; font-style: italic; font: inherit;">$400</div> thousand, payable in shares of common stock to the Company&#x2019;s Chairman, Chief Executive Officer, and President under the <div style="display: inline; font-style: italic; font: inherit;">2003</div> </div><div style="display: inline; color: windowtext">Incentive Plan. Subject to his continued employment and the terms of his employment agreement, the shares will be issued in <div style="display: inline; font-style: italic; font: inherit;"> December 2020. </div></div></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <!-- Field: Page; Sequence: 11; Value: 1 -->   <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">The following table summarizes information about RSU activity during the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month period ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020:</div></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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">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 Average<br /> Award Date<br /> 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, 2019</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: inherit;">113,866</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: inherit;">28.36</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: inherit;">42,733</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: inherit;">49.96</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">Shares 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"><div style="display: inline; font-style: italic; font: inherit;">(28,244</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: inherit;">27.02</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 at March 31, 2020</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: inherit;">128,355</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: inherit;">31.58</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 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; color: Red; font-size: 10pt"></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">At the Company&#x2019;s discretion, upon vesting 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 and issued to the RSU holder. During the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019,</div> <div style="display: inline; font-style: italic; font: inherit;">11,195</div> and <div style="display: inline; font-style: italic; font: inherit;">8,132</div> shares were surrendered at an average market price of <div style="display: inline; font-style: italic; font: inherit;">$49.99</div> and <div style="display: inline; font-style: italic; font: inherit;">$33.35,</div> respectively.</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; color: windowtext">As of <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020, </div>the Company had approximately <div style="display: inline; font-style: italic; font: inherit;">$4.0</div> million of unrecognized compensation expense that is expected to be recognized over a period of <div style="display: inline; font-style: italic; font: inherit;">4</div> years</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_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>48
<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="idp6810792128">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 14 - Subsequent Events (Details Textual)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
</tr>
<tr><th class="th">
<div>Apr. 30, 2020 </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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event [Member] | Subsidiary Guarantors [Member] | Amended and Restated Credit Agreement [Member] | Revolving Credit Facility [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_ProceedsFromLinesOfCredit', window );">Proceeds from Lines of Credit, Total</a></td>
<td class="nump">$ 5.5<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_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=121586364&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=120395691&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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_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>49
<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="idp6880385056">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 11 - Other Intangible Assets - Definite-lived Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<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_FiniteLivedIntangibleAssetsGross', window );">Gross amount</a></td>
<td class="nump">$ 23,384<span></span>
</td>
<td class="text">&#160;<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,723)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">20,661<span></span>
</td>
<td class="nump">$ 20,975<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="text">&#160;<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">(80)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">287<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_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="text">&#160;<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">(200)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">262<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_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="text">&#160;<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,443)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Net balance</a></td>
<td class="nump">$ 20,112<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_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>50
<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="idp6614176896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Other Intangible Assets (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_AmortizationOfIntangibleAssets', window );">Amortization of Intangible Assets, Total</a></td>
<td class="nump">$ 314<span></span>
</td>
<td class="nump">$ 314<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=121586364&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>51
<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="idp6885134320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Share-based Compensation - 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">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Mar. 31, 2020 </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">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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Granted, shares under options (in shares) | shares</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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted average exercise price (in dollars per share) | $ / shares</a></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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised, shares under options (in shares) | shares</a></td>
<td class="num">(19,586)<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">$ 21.20<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">86,028<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">$ 26.28<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">$ 1,025<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">65,742<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">$ 23.04<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<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">$ 989<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">86,028<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">$ 26.28<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">$ 1,025<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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120381028&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=120397183&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=120391452&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=120391452&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>52
<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="idp6886175392">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 8 - Leases - Aggregate Future Lease Payments (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Mar. 31, 2020 </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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">Remainder of 2020</a></td>
<td class="nump">$ 874<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,121<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">959<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">2,990<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">(163)<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">$ 2,827<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 payment 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=121609121&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 payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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=121609121&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_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 payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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=121609121&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 payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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=121609121&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 payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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=121609121&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 payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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=121609121&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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current 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/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=121609121&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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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=121609121&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=121603541&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>53
<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="idp6873465760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Allowance for Credit Losses (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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_AccountsReceivableAllowanceForCreditLossTableTextBlock', window );">Accounts Receivable, Allowance for Credit Loss [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: 36px; 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">Allowance for Credit<br /> Losses</td> </tr> <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">Three Months Ended<br /> March 31, 2020</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 85%; font-size: 10pt">Allowance - 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: inherit;">486</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">Provision for expected credit losses</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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; padding-bottom: 1pt">Amounts written off against the 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: inherit;">(5</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">Allowance - 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: inherit;">541</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_AccountsReceivableAllowanceForCreditLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 allowance for 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 326<br> -SubTopic 20<br> -Section 50<br> -Paragraph 13<br> -URI http://asc.fasb.org/extlink&amp;oid=121599337&amp;loc=SL82919249-210447<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock</td>
</tr>
<tr>
<td style="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>54
<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="idp6655560800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 14 - Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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_SubsequentEventsTextBlock', window );">Subsequent Events [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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">14</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Subsequent Events</div></div></td> </tr>  </table> <div style=" margin: 0pt 0 0pt 0.25in; font-size: 10pt">&nbsp;</div> <div style=" font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white"><div style="display: inline; color: #212529">The Company&#x2019;s operations expose it to risks associated with the COVID-<div style="display: inline; font-style: italic; font: inherit;">19</div> pandemic. Although the COVID-<div style="display: inline; font-style: italic; font: inherit;">19</div> pandemic did <div style="display: inline; font-style: italic; font: inherit;">not</div> materially impact the Company&#x2019;s <div style="display: inline; font-style: italic; font: inherit;">first</div> quarter results, it has since more significantly impacted the Company&#x2019;s operations. While all of the Company&#x2019;s factories are deemed essential, <div style="display: inline; font-style: italic; font: inherit;">not</div> all of its customers&#x2019; operations are essential and, therefore, demand for product, especially in the automotive and consumer markets, has been negatively impacted. Partially mitigating this are increased orders from certain customers in the medical market. The COVID-<div style="display: inline; font-style: italic; font: inherit;">19</div> pandemic has also impacted the Company&#x2019;s cost of manufacturing its goods, including higher labor costs, maintenance costs and manufacturing inefficiencies due to employee absenteeism and significantly enhanced cleaning and sterilization. With regard to the Company&#x2019;s supply chain, there has thus far been minimal disruption in the availability of raw materials, as most of the Company&#x2019;s major suppliers have also been deemed to be essential businesses.</div> <div style="display: inline; color: black">However, to mitigate risk, the Company has increased its purchases of raw materials to establish safety stock. </div></div> <div style=" color: #212529; font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white">&nbsp;</div> <div style=" color: #212529; font: 10pt Times New Roman, Times, Serif; margin: 0pt 0 0pt 27pt; background-color: white">The Company has been notified by several customers that they would be extending payment terms. The Company anticipates that these extended payment terms will be short-term in nature, but they <div style="display: inline; font-style: italic; font: inherit;"> may </div>continue for a longer duration. In the beginning of <div style="display: inline; font-style: italic; font: inherit;"> April, </div>the Company drew down <div style="display: inline; font-style: italic; font: inherit;">$5.5</div> million from its revolving credit facility to maintain cash reserves in the event it experiences a substantial shut down of operations, further or extended increase in manufacturing costs or significant exposure to its ability to timely collect its receivables.</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_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="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 855<br> -URI http://asc.fasb.org/topic&amp;trid=2122774<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 855<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6842918&amp;loc=SL6314017-165662<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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>55
<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="idp6812357488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 31,<br /> ($'s in thousands)</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">2020</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> </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> <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: 70%; font-size: 10pt; text-align: left">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: inherit;">305</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: inherit;">307</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">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: inherit;">57</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: inherit;">57</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; padding-bottom: 1pt">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: inherit;">7</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: inherit;">6</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: inherit;">369</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: inherit;">370</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">&nbsp;</td> <td 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">Cash paid for amounts included in measurement of 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">&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; text-align: left; padding-bottom: 2.5pt">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: inherit;">305</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: inherit;">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: 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> </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> <td 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; padding-bottom: 2.5pt">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: inherit;">2.45</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: inherit;">3.37</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> <td 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; padding-bottom: 2.5pt">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: inherit;">4.45</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: inherit;">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: 36px; 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">Remainder of 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: inherit;">874</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: inherit;">1,121</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: inherit;">959</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: inherit;">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: inherit;">-</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: inherit;">-</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 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: inherit;">2,990</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; 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: inherit;">(163</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: 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: inherit;">2,827</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=121609121&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=121609121&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_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>57
<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="idp6608853184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Share-based Compensation - Compensation Cost (Details) - Selling, General and Administrative Expenses [Member] - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_AllocatedShareBasedCompensationExpense', window );">Allocated share based compensation</a></td>
<td class="nump">$ 537<span></span>
</td>
<td class="nump">$ 294<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>
</tr>
<tr 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 );">Allocated share based compensation</a></td>
<td class="nump">100<span></span>
</td>
<td class="nump">100<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>
</tr>
<tr 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 );">Allocated share based compensation</a></td>
<td class="nump">60<span></span>
</td>
<td class="nump">7<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>
</tr>
<tr 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 );">Allocated share based compensation</a></td>
<td class="nump">$ 377<span></span>
</td>
<td class="nump">$ 187<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=120381028&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=120381028&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>58
<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="idp6657330464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Leases - Lease Cost (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_LeaseCostAbstract', window );"><strong>Lease Cost:</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_OperatingLeaseCost', window );">Operating</a></td>
<td class="nump">$ 305<span></span>
</td>
<td class="nump">$ 307<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">57<span></span>
</td>
<td class="nump">57<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">7<span></span>
</td>
<td class="nump">6<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">369<span></span>
</td>
<td class="nump">370<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">$ 305<span></span>
</td>
<td class="nump">$ 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_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Operating, weighted average remaining lease term (Year)</a></td>
<td class="text">2 years 164 days<span></span>
</td>
<td class="text">3 years 135 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>
<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=121609121&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=121568110&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=121568110&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=121609121&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=121603541&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=121609121&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=121609121&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=121568110&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=121568110&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=121609121&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=121609121&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=121568110&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=121609121&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=121568110&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>59
<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="idp6881122400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Segment Data - Net Sales by Market (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th" colspan="2"><div>Mar. 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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 48,277<span></span>
</td>
<td class="nump">$ 47,328<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></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="nump">100.00%<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="fn" style="border-bottom: 0px;"></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="nump">$ 33,688<span></span>
</td>
<td class="nump">$ 28,944<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="nump">69.80%<span></span>
</td>
<td class="nump">61.20%<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="fn" style="border-bottom: 0px;"></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="nump">$ 4,602<span></span>
</td>
<td class="nump">$ 5,738<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="nump">9.50%<span></span>
</td>
<td class="nump">12.10%<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="fn" style="border-bottom: 0px;"></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="nump">$ 3,439<span></span>
</td>
<td class="nump">$ 4,424<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="nump">7.10%<span></span>
</td>
<td class="nump">9.30%<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="fn" style="border-bottom: 0px;"></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="nump">$ 2,711<span></span>
</td>
<td class="nump">$ 3,532<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="nump">5.60%<span></span>
</td>
<td class="nump">7.50%<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="fn" style="border-bottom: 0px;"></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="nump">$ 1,917<span></span>
</td>
<td class="nump">$ 2,485<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="nump">4.00%<span></span>
</td>
<td class="nump">5.30%<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="fn" style="border-bottom: 0px;"></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="nump">$ 1,920<span></span>
</td>
<td class="nump">$ 2,204<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></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="nump">4.00%<span></span>
</td>
<td class="nump">4.70%<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
</tr>
<tr><td colspan="4"></td></tr>
<tr><td colspan="4"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Certain amounts for the three months ended March 31, 2019 were reclassified between markets to conform to the current period presentation.</td>
</tr></table></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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 4: 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 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: 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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 6: 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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 7: 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: 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=121604090&amp;loc=SL49130543-203045<br><br>Reference 9: 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 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 10: 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 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>60
<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="idp6783897424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Income Per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; 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">&nbsp;</td> <td colspan="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center">Three Months Ended</td> </tr> <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="7" style="white-space: nowrap; font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">March 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">2020</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> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 70%; font-size: 10pt">Basic weighted average common shares outstanding</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: inherit;">7,457</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: inherit;">7,402</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 RSUs</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: inherit;">81</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: inherit;">64</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">Diluted weighted average common shares outstanding</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: inherit;">7,538</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: inherit;">7,466</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>61
<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="idp6805781648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Fair Value of Financial Instruments (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; min-; min-width: 700px;"> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt; text-align: left"><div style="display: inline; text-decoration: underline;">Level 2</div></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">March 31,<br /> 2020</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">March 31,<br /> 2019</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">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: White"> <td style="text-indent: 10pt; width: 70%; font-size: 10pt; text-align: left">Derivative financial instruments</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: inherit;">(624</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">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">(175</div></td> <td style="width: 1%; font-size: 10pt; text-align: left">)</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>62
<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="idp6807925440">
<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">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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_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="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Recent Accounting Pronouncements</div></div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt"><div style="display: inline; font-style: italic;">&nbsp;</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; background-color: white">In <div style="display: inline; font-style: italic; font: inherit;"> June 2016, </div>the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) <div style="display: inline; font-style: italic; font: inherit;">2016</div>-<div style="display: inline; font-style: italic; font: inherit;">13,</div> <div style="display: inline; font-style: italic;">Financial Instruments &#x2013; Credit Losses (Accounting Standards Codification (ASC) <div style="display: inline; font-style: italic; font: inherit;">326</div>)</div>. The Company adopted ASC <div style="display: inline; font-style: italic; font: inherit;">326</div> on <div style="display: inline; font-style: italic; font: inherit;"> January 1, 2020. </div></div><div style="display: inline; color: windowtext">See Note <div style="display: inline; font-style: italic; font: inherit;">4</div> for further details</div><div style="display: inline; background-color: white">.</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 style="display: inline; background-color: white">In <div style="display: inline; font-style: italic; font: inherit;"> January 2017, </div>the FASB issued ASU&nbsp;<div style="display: inline; font-style: italic; font: inherit;">2017</div>-<div style="display: inline; font-style: italic; font: inherit;">04,</div>&nbsp;<div style="display: inline; font-style: italic;">Intangibles&#x2014;Goodwill and Other (ASC <div style="display: inline; font-style: italic; font: inherit;">350</div>), Simplifying the Test for Goodwill Impairment</div>. The guidance removes Step <div style="display: inline; font-style: italic; font: inherit;">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: inherit;">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: inherit;"> December&nbsp;</div><div style="display: inline; font-style: italic; font: inherit;">15,</div> <div style="display: inline; font-style: italic; font: inherit;">2019.</div> The Company adopted ASC <div style="display: inline; font-style: italic; font: inherit;">350</div> on <div style="display: inline; font-style: italic; font: inherit;"> January 1, 2020 </div>and it did <div style="display: inline; font-style: italic; font: inherit;">not</div> have a material impact on its financial condition or results of operations.</div></div></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_RevisionsPolicyPolicyTextBlock', window );">Revisions 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="display: inline; font-family: times new roman; font-size: 10pt"><div style="display: inline; font-family: times new roman; font-size: 10pt"><div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt"><div style="display: inline; font-style: italic;">Revisions</div></div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">Certain revisions have been made to the <div style="display: inline; font-style: italic; font: inherit;"> December 31, 2019 </div>Condensed Consolidated Balance Sheet to conform to the current year presentation relating to a reclassification of long-term operating lease liabilities to current operating lease liabilities. The reclassification resulted in an increase of current operating lease liabilities of <div style="display: inline; font-style: italic; font: inherit;">$476</div> thousand and a decrease of long-term operating lease liabilities of <div style="display: inline; font-style: italic; font: inherit;">$476</div> thousand. These revisions had <div style="display: inline; font-style: italic; font: inherit;">no</div> impact on previously reported earnings, net income or cash flows and are deemed immaterial to the previously issued financial statements.</div></div></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_RevisionsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 revisions to financial statements.</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_RevisionsPolicyPolicyTextBlock</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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<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="idp6608393488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Segment Data (Tables)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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-left: 36px; 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="15" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Three Months Ended March 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="7" style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">2020</td> <td style="font-size: 10pt; font-weight: bold; font-style: normal; padding-bottom: 1pt">&nbsp;</td> <td colspan="7" style="font-size: 10pt; font-weight: bold; font-style: normal; text-align: center; border-bottom: Black 1pt solid">2019 <div style="display: inline; font-size: 10pt; font-style: normal; font-weight: 700"><div style="display: inline; bottom:.33em; font-size: 82%; position: relative; vertical-align: baseline;">(1)</div></div></td> </tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold; text-align: center; border-bottom: Black 1pt solid">Market</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">Net Sales</td> <td style="border-bottom: Black 1pt solid; 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">%</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">Net Sales</td> <td style="border-bottom: Black 1pt solid; 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">%</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">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 40%; font-size: 10pt">Medical</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: inherit;">33,688</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: inherit;">69.8</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">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">28,944</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: inherit;">61.2</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">Automotive</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">4,602</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: inherit;">9.5</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: inherit;">5,738</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: inherit;">12.1</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">Consumer</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">3,439</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: inherit;">7.1</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: inherit;">4,424</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: inherit;">9.3</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">Aerospace &amp; Defense</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">2,711</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: inherit;">5.6</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: inherit;">3,532</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: inherit;">7.5</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">Industrial</td> <td style="font-size: 10pt">&nbsp;</td> <td style="font-size: 10pt; text-align: left">&nbsp;</td> <td style="font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: inherit;">4.0</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: inherit;">2,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: inherit;">5.3</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; padding-bottom: 1pt">Electronics</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: inherit;">1,920</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="border-bottom: 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: inherit;">4.0</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: inherit;">2,204</div></td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">&nbsp;</td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">&nbsp;</td> <td style="border-bottom: 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: inherit;">4.7</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: 10pt; font-size: 10pt; text-align: left; padding-bottom: 2.5pt">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: inherit;">48,277</div></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: left">&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: inherit;">100.0</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: inherit;">47,327</div></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: left">&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: inherit;">100.0</div></td> <td style="border-bottom: Black 2.5pt double; font-size: 10pt; text-align: left">%</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>64
<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="idp6884722128">
<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="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 48,277<span></span>
</td>
<td class="nump">$ 47,328<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>
</tr>
<tr 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">47,029<span></span>
</td>
<td class="nump">46,410<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>
</tr>
<tr 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">677<span></span>
</td>
<td class="nump">645<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>
</tr>
<tr 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">$ 571<span></span>
</td>
<td class="nump">$ 273<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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 32<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 4: 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 32<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 5: 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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 6: 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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 7: 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: 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=121604090&amp;loc=SL49130543-203045<br><br>Reference 9: 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 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 10: 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 40<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9031-108599<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 924<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -URI http://asc.fasb.org/extlink&amp;oid=6472922&amp;loc=d3e499488-122856<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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>65
<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="idp6883908624">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Current Period Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<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_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">$ 7,334<span></span>
</td>
<td class="nump">$ 3,743<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, less allowance of $541 at March 31, 2020 and $486 at December 31, 2019</a></td>
<td class="nump">29,449<span></span>
</td>
<td class="nump">28,648<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">20,242<span></span>
</td>
<td class="nump">18,276<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,750<span></span>
</td>
<td class="nump">2,304<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="text"> <span></span>
</td>
<td class="nump">279<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">59,775<span></span>
</td>
<td class="nump">53,250<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">117,292<span></span>
</td>
<td class="nump">116,089<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less accumulated depreciation and amortization</a></td>
<td class="num">(61,062)<span></span>
</td>
<td class="num">(59,350)<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,230<span></span>
</td>
<td class="nump">56,739<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,661<span></span>
</td>
<td class="nump">20,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_DeferredCompensationPlanAssets', window );">Non-qualified deferred compensation plan</a></td>
<td class="nump">2,790<span></span>
</td>
<td class="nump">2,775<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">2,771<span></span>
</td>
<td class="nump">3,034<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">148<span></span>
</td>
<td class="nump">147<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">194,213<span></span>
</td>
<td class="nump">188,758<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">7,535<span></span>
</td>
<td class="nump">4,577<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">6,350<span></span>
</td>
<td class="nump">8,483<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,432<span></span>
</td>
<td class="nump">2,574<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">1,140<span></span>
</td>
<td class="nump">1,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_AccruedIncomeTaxesCurrent', window );">Income taxes payable</a></td>
<td class="nump">5<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_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">17,462<span></span>
</td>
<td class="nump">16,784<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_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">5,342<span></span>
</td>
<td class="nump">4,921<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 );">Non-qualified deferred compensation plan</a></td>
<td class="nump">2,817<span></span>
</td>
<td class="nump">2,788<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_OperatingLeaseLiabilityNoncurrent', window );">Operating Lease, Liability, Noncurrent</a></td>
<td class="nump">1,687<span></span>
</td>
<td class="nump">1,940<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_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">630<span></span>
</td>
<td class="nump">334<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_Liabilities', window );">Total liabilities</a></td>
<td class="nump">27,938<span></span>
</td>
<td class="nump">26,767<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_CommitmentsAndContingencies', window );">Commitments and contingencies</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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="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_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="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_CommonStockValue', window );">Common stock, $.01 par value, 20,000,000 shares authorized; 7,512,403 and 7,482,844 shares issued and outstanding, respectively at March 31, 2020;7,475,768 and 7,446,209 shares issued and outstanding, respectively at December 31, 2019</a></td>
<td class="nump">75<span></span>
</td>
<td class="nump">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_AdditionalPaidInCapital', window );">Additional paid-in capital</a></td>
<td class="nump">31,344<span></span>
</td>
<td class="nump">30,952<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_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">135,443<span></span>
</td>
<td class="nump">131,552<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_TreasuryStockValue', window );">Treasury stock at cost, 29,559 shares at March 31, 2020 and December 31, 2019</a></td>
<td class="num">(587)<span></span>
</td>
<td class="num">(587)<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_StockholdersEquity', window );">Total stockholders&#8217; equity</a></td>
<td class="nump">166,275<span></span>
</td>
<td class="nump">161,991<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_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders' equity</a></td>
<td class="nump">$ 194,213<span></span>
</td>
<td class="nump">$ 188,758<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=120391452&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 310<br> -SubTopic 10<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121593590&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 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=120391452&amp;loc=d3e13212-122682<br><br>Reference 3: 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=121566466&amp;loc=d3e6676-107765<br><br>Reference 4: 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=121593590&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_AccruedIncomeTaxesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax 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 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&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(15)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&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(20))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&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_AccruedIncomeTaxesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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=120391452&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=120391452&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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<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(30)(a)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&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=120398452&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 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&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 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 6: 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 32<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: 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=120311839&amp;loc=d3e8736-108599<br><br>Reference 8: 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=120400017&amp;loc=d3e572229-122910<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 10: 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 30<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-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_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=121566466&amp;loc=d3e6801-107765<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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<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.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 7: 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 8: 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=121566466&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=121586364&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=121566466&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=120391452&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=120391452&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=120400017&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=120398452&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=121557415&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=120391452&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=121556615&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=121556615&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=121604090&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=120391452&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://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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e31931-109318<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 45<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e31917-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://www.xbrl.org/2003/role/disclosureRef<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)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&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 350<br> -SubTopic 20<br> -Section 45<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120320667&amp;loc=SL49117168-202975<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 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=120400017&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=120398452&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=120391452&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=121566466&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 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=120391452&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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<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.19-26)<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&amp;loc=d3e13212-122682<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 8: 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&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_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://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&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 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=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&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 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=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=116870748&amp;loc=SL6758485-165988<br><br>Reference 4: 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&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 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=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559654&amp;loc=d3e5710-111685<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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_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=121603541&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=121603541&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=121603541&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=120391452&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=120391452&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=120391452&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=121566466&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=121566466&amp;loc=d3e6676-107765<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 340<br> -SubTopic 10<br> -Section 45<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6387103&amp;loc=d3e6435-108320<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<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=120391452&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=120391452&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=120400017&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=120391452&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=120391452&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 718<br> -SubTopic 10<br> -Section 65<br> -Paragraph 15<br> -Subparagraph (g)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121322162&amp;loc=SL121327923-165333<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)(23)(a)(4))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<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 S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -URI http://asc.fasb.org/extlink&amp;oid=120397183&amp;loc=d3e187085-122770<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 944<br> -SubTopic 40<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=121370832&amp;loc=SL117420844-207641<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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://www.xbrl.org/2009/role/commonPracticeRef<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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&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 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 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(31))<br> -URI http://asc.fasb.org/extlink&amp;oid=120391452&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=120391452&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 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=120391452&amp;loc=d3e13212-122682<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=120391452&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>66
<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="idp6614522752">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 5 - Fair Value of Financial Instruments - Financial Assets Measured at Fair Value on a Recurring Basis (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember', window );">Fair Value, Recurring [Member] | Fair Value, Inputs, Level 2 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Derivative financial instruments</a></td>
<td class="num">$ (624)<span></span>
</td>
<td class="num">$ (175)<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_DerivativeLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 liability or 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 liabilities 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 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=51824906&amp;loc=SL20225862-175312<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=121572278&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 55<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=99393222&amp;loc=SL20226008-175313<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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>67
<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="idp6788083568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Mar. 31, 2020</div></th>
<th class="th"><div>Mar. 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_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 3,891<span></span>
</td>
<td class="nump">$ 3,734<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>
</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">2,066<span></span>
</td>
<td class="nump">2,022<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 on sale of fixed assets</a></td>
<td class="num">(4)<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_ShareBasedCompensation', window );">Share-based compensation</a></td>
<td class="nump">537<span></span>
</td>
<td class="nump">294<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">421<span></span>
</td>
<td class="nump">424<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
</tr>
<tr 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">(801)<span></span>
</td>
<td class="num">(1,451)<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="num">(1,966)<span></span>
</td>
<td class="nump">139<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">(446)<span></span>
</td>
<td class="nump">364<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">284<span></span>
</td>
<td class="nump">781<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">247<span></span>
</td>
<td class="num">(338)<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="nump">2,726<span></span>
</td>
<td class="num">(907)<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="num">(2,133)<span></span>
</td>
<td class="num">(2,506)<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="num">(142)<span></span>
</td>
<td class="nump">465<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingLiabilities', window );">Non-qualified deferred compensation plan and other liabilities</a></td>
<td class="nump">62<span></span>
</td>
<td class="nump">608<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">4,742<span></span>
</td>
<td class="nump">3,629<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>
</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">(1,020)<span></span>
</td>
<td class="num">(1,388)<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_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sale of fixed assets</a></td>
<td class="nump">13<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_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(1,007)<span></span>
</td>
<td class="num">(1,388)<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_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfLinesOfCredit', window );">Payments on revolving line of credit</a></td>
<td class="text"> <span></span>
</td>
<td class="num">(3,000)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_ufpt_ProceedsFromStockOptionsExercisedNet', window );">Proceeds from exercise of stock options</a></td>
<td class="nump">416<span></span>
</td>
<td class="nump">285<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 withholdings for restricted stock units vested</a></td>
<td class="num">(560)<span></span>
</td>
<td class="num">(271)<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 financing activities</a></td>
<td class="num">(144)<span></span>
</td>
<td class="num">(2,986)<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 increase (decrease) in cash and cash equivalents</a></td>
<td class="nump">3,591<span></span>
</td>
<td class="num">(745)<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 period</a></td>
<td class="nump">3,743<span></span>
</td>
<td class="nump">3,238<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 period</a></td>
<td class="nump">$ 7,334<span></span>
</td>
<td class="nump">$ 2,493<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=121586364&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=121566466&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=120391452&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://www.xbrl.org/2003/role/disclosureRef<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.Fact.1)<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 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=120395691&amp;loc=d3e23780-122690<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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 5: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 6: 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=120311839&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=121586364&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_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=121586364&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_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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121586364&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=121641772&amp;loc=SL7669619-108580<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 31<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8924-108599<br><br>Reference 3: 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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-107794<br><br>Reference 4: 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=120399700&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> -Subparagraph (a)<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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721683-107760<br><br>Reference 8: 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<br><br>Reference 9: 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=121641772&amp;loc=SL7669625-108580<br><br>Reference 10: 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=120311839&amp;loc=d3e8736-108599<br><br>Reference 11: 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=120400993&amp;loc=SL114874131-224263<br><br>Reference 12: 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=120395209&amp;loc=SL114868664-224227<br><br>Reference 13: 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=121586364&amp;loc=d3e3602-108585<br><br>Reference 14: 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 1<br> -Subparagraph (b)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22499-107794<br><br>Reference 15: 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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22663-107794<br><br>Reference 16: 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 28<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=75031198&amp;loc=d3e14064-108612<br><br>Reference 17: 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 30<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<br><br>Reference 18: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<br><br>Reference 19: 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(g)(1)(ii))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 20: 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 (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=SL5780133-109256<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 323<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=114001798&amp;loc=d3e33918-111571<br><br>Reference 22: 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 32<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8933-108599<br><br>Reference 23: 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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22658-107794<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><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=121586364&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_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=121586364&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_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=121586364&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=121586364&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=120395691&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_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=121586364&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>68
<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="idp6873500480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Other Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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 cellpadding="0" cellspacing="0" style="; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; min-width: 700px;">  <tr style="vertical-align: top; text-align: justify"> <td style="width: 0; text-align: right"></td> <td style="width: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">11</div>)</div></td> <td style="text-align: justify"><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Other Intangible Assets</div></div></td> </tr>  </table> <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 carrying values of the Company&#x2019;s definite lived intangible assets as of <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>are as follows (in&nbsp;thousands):</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; color: Red"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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">Tradename<br /> &amp; Brand</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">Non-<br /> Compete</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">Customer<br /> List</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">Total</td> </tr> <tr style="vertical-align: bottom"> <td style="padding-bottom: 1pt; white-space: nowrap; font-size: 10pt">Estimated useful life</td> <td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">10 years</td> <td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">5 years</td> <td style="white-space: nowrap; font-size: 10pt; padding-bottom: 1pt">&nbsp;</td> <td colspan="3" style="white-space: nowrap; font-size: 10pt; text-align: center; border-bottom: Black 1pt solid">20 years</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">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 40%; 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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">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: inherit;">(80</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: inherit;">(200</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: inherit;">(2,443</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: inherit;">(2,723</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: inherit;">287</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: inherit;">262</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: inherit;">20,112</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: inherit;">20,661</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=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</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: 14; 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">Amortization expense related to intangible assets was approximately <div style="display: inline; font-style: italic; font: inherit;">$</div><div style="display: inline; font-style: italic; font: inherit;"><div style="display: inline; font-style: italic; font: inherit;">314</div> </div>thousand for both the <div style="display: inline; font-style: italic; font: inherit;">three</div>-month periods ended <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>and <div style="display: inline; font-style: italic; font: inherit;">2019.</div> The estimated remaining amortization expense as of <div style="display: inline; font-style: italic; font: inherit;"> March 31, 2020 </div>is as follows (in thousands):</div> <div style=" margin: 0pt 0 0pt 27.35pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; text-indent: -0.35pt; margin: 0pt 0 0pt 0.75in"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; min-width: 700px;">  <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Remainder of:</td> <td style="font-size: 10pt">&nbsp;</td> <td colspan="3" style="font-size: 10pt">&nbsp;</td> </tr> <tr style="vertical-align: bottom; background-color: White"> <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">$</td> <td style="width: 12%; font-size: 10pt; text-align: right"><div style="display: inline; font-style: italic; font: inherit;">943</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="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: inherit;">1,257</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: inherit;">1,257</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">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: inherit;">1,172</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">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: inherit;">1,164</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; 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: inherit;">14,868</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: 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: inherit;">20,661</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_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>69
<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="idp6805500272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Inventories<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Mar. 31, 2020</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: 27pt"><div style="display: inline; font-weight: bold;">(<div style="display: inline; font-style: italic; font: inherit;">7</div>)</div></td> <td><div style="display: inline; font-size: 10pt"><div style="display: inline; font-weight: bold;">Inventories</div></div></td> </tr>  </table> <div style=" margin-top: 0pt; margin-bottom: 0pt; font-size: 10pt">&nbsp;</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">Inventories are stated at the lower of cost (determined using the <div style="display: inline; font-style: italic; font: inherit;">first</div>-in, <div style="display: inline; font-style: italic; font: inherit;">first</div>-out method) or net realizable value, and consist of the following at the stated dates (in thousands):</div> <div style=" margin: 0pt 0 0pt 27pt; font-size: 10pt">&nbsp;</div> <div style=" color: Red; font-size: 10pt; margin: 0pt 0 0pt 27.35pt"></div> <div> <table cellpadding="0" cellspacing="0" style="border-collapse: collapse; margin-left: 36px; 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">March 31,<br /> 2020</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">December 31,<br /> 2019</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: inherit;">11,471</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: inherit;">10,540</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: inherit;">2,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: inherit;">2,279</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: inherit;">5,976</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: inherit;">5,457</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: 10pt; 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: inherit;">20,242</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: inherit;">18,276</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>70
<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="idp6783843136">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 11 - Other Intangible Assets - Future Amortization of Intangible Assets (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Mar. 31, 2020 </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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">2020</a></td>
<td class="nump">$ 943<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,661<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 for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current 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;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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 for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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 for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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 for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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 for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 926<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=120154696&amp;loc=d3e54445-107959<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_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>
</SEC-DOCUMENT>
