<?xml version="1.0" encoding="windows-1252"?>
<informationTable xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<infoTable>
  <nameOfIssuer>A10 Networks Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>002121101</cusip>
  <value>4468410</value>
  <shrsOrPrnAmt>
    <sshPrnamt>339287</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>164823</Sole>
    <Shared>0</Shared>
    <None>174464</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Accuray Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004397105</cusip>
  <value>267721</value>
  <shrsOrPrnAmt>
    <sshPrnamt>94601</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>94601</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>ACI Worldwide Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>004498101</cusip>
  <value>1182506</value>
  <shrsOrPrnAmt>
    <sshPrnamt>38644</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16633</Sole>
    <Shared>0</Shared>
    <None>22011</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Addus HomeCare Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>006739106</cusip>
  <value>1966563</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21180</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9211</Sole>
    <Shared>0</Shared>
    <None>11969</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Albany International Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>012348108</cusip>
  <value>3208160</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32663</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14219</Sole>
    <Shared>0</Shared>
    <None>18444</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amedisys Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>023436108</cusip>
  <value>2816628</value>
  <shrsOrPrnAmt>
    <sshPrnamt>29630</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12913</Sole>
    <Shared>0</Shared>
    <None>16717</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ameresco, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>02361E108</cusip>
  <value>2509816</value>
  <shrsOrPrnAmt>
    <sshPrnamt>79249</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>34489</Sole>
    <Shared>0</Shared>
    <None>44760</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>American Eagle Outfitters</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>02553E106</cusip>
  <value>2942531</value>
  <shrsOrPrnAmt>
    <sshPrnamt>139061</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>60601</Sole>
    <Shared>0</Shared>
    <None>78460</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>AMN Healthcare Services Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>001744101</cusip>
  <value>1309352</value>
  <shrsOrPrnAmt>
    <sshPrnamt>17486</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7611</Sole>
    <Shared>0</Shared>
    <None>9875</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Amphastar Pharma Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>03209R103</cusip>
  <value>2133701</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34498</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15056</Sole>
    <Shared>0</Shared>
    <None>19442</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Aris Water Solutions</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>04041L106</cusip>
  <value>1392925</value>
  <shrsOrPrnAmt>
    <sshPrnamt>166022</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>86430</Sole>
    <Shared>0</Shared>
    <None>79592</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Axcelis Technologies Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>054540208</cusip>
  <value>3448198</value>
  <shrsOrPrnAmt>
    <sshPrnamt>26588</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11624</Sole>
    <Shared>0</Shared>
    <None>14964</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Badger Meter Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>056525108</cusip>
  <value>1698070</value>
  <shrsOrPrnAmt>
    <sshPrnamt>11000</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4797</Sole>
    <Shared>0</Shared>
    <None>6203</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bank of Marin Bancorp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>063425102</cusip>
  <value>214695</value>
  <shrsOrPrnAmt>
    <sshPrnamt>9750</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9750</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Bankwell Financial Group, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>06654A103</cusip>
  <value>299929</value>
  <shrsOrPrnAmt>
    <sshPrnamt>9938</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9938</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Barrett Business Services Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>068463108</cusip>
  <value>1615989</value>
  <shrsOrPrnAmt>
    <sshPrnamt>13955</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6783</Sole>
    <Shared>0</Shared>
    <None>7172</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>BGSF, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>05601C105</cusip>
  <value>323510</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34416</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>34416</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Boise Cascade Company</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>09739D100</cusip>
  <value>2344909</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18127</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7906</Sole>
    <Shared>0</Shared>
    <None>10221</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Cactus, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>127203107</cusip>
  <value>3135142</value>
  <shrsOrPrnAmt>
    <sshPrnamt>69056</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>29854</Sole>
    <Shared>0</Shared>
    <None>39202</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>California Water Service Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>130788102</cusip>
  <value>1505319</value>
  <shrsOrPrnAmt>
    <sshPrnamt>29021</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12526</Sole>
    <Shared>0</Shared>
    <None>16495</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Cambium Network Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>G17766109</cusip>
  <value>1563756</value>
  <shrsOrPrnAmt>
    <sshPrnamt>260626</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>131583</Sole>
    <Shared>0</Shared>
    <None>129043</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CBIZ Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>124805102</cusip>
  <value>2842963</value>
  <shrsOrPrnAmt>
    <sshPrnamt>45422</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>19758</Sole>
    <Shared>0</Shared>
    <None>25664</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Century Communities, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>156504300</cusip>
  <value>3802361</value>
  <shrsOrPrnAmt>
    <sshPrnamt>41720</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>18176</Sole>
    <Shared>0</Shared>
    <None>23544</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Coherent Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>19247G107</cusip>
  <value>3793074</value>
  <shrsOrPrnAmt>
    <sshPrnamt>87137</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>37917</Sole>
    <Shared>0</Shared>
    <None>49220</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Coherus Biosciences</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>19249H103</cusip>
  <value>1042070</value>
  <shrsOrPrnAmt>
    <sshPrnamt>312934</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>138322</Sole>
    <Shared>0</Shared>
    <None>174612</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Columbus McKinnon Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>199333105</cusip>
  <value>352077</value>
  <shrsOrPrnAmt>
    <sshPrnamt>9023</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9023</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Comfort Systems USA Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>199908104</cusip>
  <value>6759756</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32867</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14309</Sole>
    <Shared>0</Shared>
    <None>18558</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Consensus Cloud Solutions Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>20848V105</cusip>
  <value>1476462</value>
  <shrsOrPrnAmt>
    <sshPrnamt>56332</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>27218</Sole>
    <Shared>0</Shared>
    <None>29114</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Corcept Therapeutics Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>218352102</cusip>
  <value>1599705</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49252</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>21786</Sole>
    <Shared>0</Shared>
    <None>27466</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>CRA International, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>12618T105</cusip>
  <value>453425</value>
  <shrsOrPrnAmt>
    <sshPrnamt>4587</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4587</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Diodes Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>254543101</cusip>
  <value>2992365</value>
  <shrsOrPrnAmt>
    <sshPrnamt>37163</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16136</Sole>
    <Shared>0</Shared>
    <None>21027</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>DMC Global Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>23291C103</cusip>
  <value>1805854</value>
  <shrsOrPrnAmt>
    <sshPrnamt>95954</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>48034</Sole>
    <Shared>0</Shared>
    <None>47920</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Donnely Financial</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>25787G100</cusip>
  <value>317650</value>
  <shrsOrPrnAmt>
    <sshPrnamt>5093</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5093</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Dorman Products Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>258278100</cusip>
  <value>2998506</value>
  <shrsOrPrnAmt>
    <sshPrnamt>35949</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15645</Sole>
    <Shared>0</Shared>
    <None>20304</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Dril-Quip, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>262037104</cusip>
  <value>2909239</value>
  <shrsOrPrnAmt>
    <sshPrnamt>125021</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>61674</Sole>
    <Shared>0</Shared>
    <None>63347</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Easterly Government Properties</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>27616P103</cusip>
  <value>1107281</value>
  <shrsOrPrnAmt>
    <sshPrnamt>82387</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>36000</Sole>
    <Shared>0</Shared>
    <None>46387</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ensign Group Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29358P101</cusip>
  <value>6808903</value>
  <shrsOrPrnAmt>
    <sshPrnamt>60680</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26418</Sole>
    <Shared>0</Shared>
    <None>34262</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Evercore Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>29977A105</cusip>
  <value>1872313</value>
  <shrsOrPrnAmt>
    <sshPrnamt>10946</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>4732</Sole>
    <Shared>0</Shared>
    <None>6214</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Everi Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30034T103</cusip>
  <value>256178</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22731</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>22731</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>EVERTEC, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30040P103</cusip>
  <value>2368297</value>
  <shrsOrPrnAmt>
    <sshPrnamt>57848</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>24982</Sole>
    <Shared>0</Shared>
    <None>32866</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Exlservice Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>302081104</cusip>
  <value>3279108</value>
  <shrsOrPrnAmt>
    <sshPrnamt>106292</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>46278</Sole>
    <Shared>0</Shared>
    <None>60014</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Exponent Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>30214U102</cusip>
  <value>2488627</value>
  <shrsOrPrnAmt>
    <sshPrnamt>28267</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12342</Sole>
    <Shared>0</Shared>
    <None>15925</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>First Financial Bankshares, In</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>32020R109</cusip>
  <value>2630828</value>
  <shrsOrPrnAmt>
    <sshPrnamt>86826</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>37758</Sole>
    <Shared>0</Shared>
    <None>49068</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Franklin Electric Co.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>353514102</cusip>
  <value>2052169</value>
  <shrsOrPrnAmt>
    <sshPrnamt>21233</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9216</Sole>
    <Shared>0</Shared>
    <None>12017</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Gentherm Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37253A103</cusip>
  <value>2917133</value>
  <shrsOrPrnAmt>
    <sshPrnamt>55713</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>24265</Sole>
    <Shared>0</Shared>
    <None>31448</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Getty Realty Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>374297109</cusip>
  <value>2090896</value>
  <shrsOrPrnAmt>
    <sshPrnamt>71557</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>31137</Sole>
    <Shared>0</Shared>
    <None>40420</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Glacier Bancorp Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>37637Q105</cusip>
  <value>4281992</value>
  <shrsOrPrnAmt>
    <sshPrnamt>103630</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>45108</Sole>
    <Shared>0</Shared>
    <None>58522</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Globus Medical, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>379577208</cusip>
  <value>3204647</value>
  <shrsOrPrnAmt>
    <sshPrnamt>60136</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26232</Sole>
    <Shared>0</Shared>
    <None>33904</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Healthcare Services Group, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>421906108</cusip>
  <value>1502426</value>
  <shrsOrPrnAmt>
    <sshPrnamt>144882</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>62653</Sole>
    <Shared>0</Shared>
    <None>82229</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Hope Bancorp, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>43940T109</cusip>
  <value>2006995</value>
  <shrsOrPrnAmt>
    <sshPrnamt>166142</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>71812</Sole>
    <Shared>0</Shared>
    <None>94330</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Insteel Industries, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>45774W108</cusip>
  <value>4003794</value>
  <shrsOrPrnAmt>
    <sshPrnamt>104565</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>51352</Sole>
    <Shared>0</Shared>
    <None>53213</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Investors Title Co.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>461804106</cusip>
  <value>258127</value>
  <shrsOrPrnAmt>
    <sshPrnamt>1592</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>1592</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>iRadimed Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>46266A109</cusip>
  <value>1621053</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34149</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16973</Sole>
    <Shared>0</Shared>
    <None>17176</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>iShares Russell 2000 Growth ET</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>464287648</cusip>
  <value>210604</value>
  <shrsOrPrnAmt>
    <sshPrnamt>835</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>835</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>J&amp;J Snack Foods Corp.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466032109</cusip>
  <value>2330934</value>
  <shrsOrPrnAmt>
    <sshPrnamt>13946</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6072</Sole>
    <Shared>0</Shared>
    <None>7874</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Jack in the Box Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>466367109</cusip>
  <value>2522775</value>
  <shrsOrPrnAmt>
    <sshPrnamt>30905</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16118</Sole>
    <Shared>0</Shared>
    <None>14787</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Kulicke Soffa</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>501242101</cusip>
  <value>2368665</value>
  <shrsOrPrnAmt>
    <sshPrnamt>43287</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>18970</Sole>
    <Shared>0</Shared>
    <None>24317</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>La-Z-Boy Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>505336107</cusip>
  <value>3027255</value>
  <shrsOrPrnAmt>
    <sshPrnamt>81995</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>35675</Sole>
    <Shared>0</Shared>
    <None>46320</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lakeland Financial Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>511656100</cusip>
  <value>2030451</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31161</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13546</Sole>
    <Shared>0</Shared>
    <None>17615</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Landstar System, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>515098101</cusip>
  <value>3254288</value>
  <shrsOrPrnAmt>
    <sshPrnamt>16805</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7328</Sole>
    <Shared>0</Shared>
    <None>9477</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lemaitre Vascular Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>525558201</cusip>
  <value>4047783</value>
  <shrsOrPrnAmt>
    <sshPrnamt>71314</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>35405</Sole>
    <Shared>0</Shared>
    <None>35909</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lithia Motors, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>536797103</cusip>
  <value>4473927</value>
  <shrsOrPrnAmt>
    <sshPrnamt>13587</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5912</Sole>
    <Shared>0</Shared>
    <None>7675</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>LTC Properties, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>502175102</cusip>
  <value>1201192</value>
  <shrsOrPrnAmt>
    <sshPrnamt>37397</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16187</Sole>
    <Shared>0</Shared>
    <None>21210</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Lumentum Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55024U109</cusip>
  <value>1696573</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32365</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13882</Sole>
    <Shared>0</Shared>
    <None>18483</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MACOM Tech  Solutions</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405Y100</cusip>
  <value>3634996</value>
  <shrsOrPrnAmt>
    <sshPrnamt>39107</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17043</Sole>
    <Shared>0</Shared>
    <None>22064</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MasTec, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>576323109</cusip>
  <value>2480663</value>
  <shrsOrPrnAmt>
    <sshPrnamt>32761</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14145</Sole>
    <Shared>0</Shared>
    <None>18616</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Maxiums Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>577933104</cusip>
  <value>2012137</value>
  <shrsOrPrnAmt>
    <sshPrnamt>23994</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10452</Sole>
    <Shared>0</Shared>
    <None>13542</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Medifast, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>58470H101</cusip>
  <value>1337544</value>
  <shrsOrPrnAmt>
    <sshPrnamt>19898</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9761</Sole>
    <Shared>0</Shared>
    <None>10137</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MEDNAX, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>58502B106</cusip>
  <value>1187731</value>
  <shrsOrPrnAmt>
    <sshPrnamt>127713</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>55483</Sole>
    <Shared>0</Shared>
    <None>72230</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Medpace Holdings Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>58506Q109</cusip>
  <value>6753775</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22033</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9594</Sole>
    <Shared>0</Shared>
    <None>12439</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Methode Electronics, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>591520200</cusip>
  <value>3539925</value>
  <shrsOrPrnAmt>
    <sshPrnamt>155738</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>75702</Sole>
    <Shared>0</Shared>
    <None>80036</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MillerKnoll, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>600544100</cusip>
  <value>2427426</value>
  <shrsOrPrnAmt>
    <sshPrnamt>90983</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>39348</Sole>
    <Shared>0</Shared>
    <None>51635</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>MYR Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>55405W104</cusip>
  <value>527032</value>
  <shrsOrPrnAmt>
    <sshPrnamt>3644</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>3644</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Neogen Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>640491106</cusip>
  <value>3535639</value>
  <shrsOrPrnAmt>
    <sshPrnamt>175815</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>76495</Sole>
    <Shared>0</Shared>
    <None>99320</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>NVE Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>629445206</cusip>
  <value>2377684</value>
  <shrsOrPrnAmt>
    <sshPrnamt>30316</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16212</Sole>
    <Shared>0</Shared>
    <None>14104</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ollie&apos;s Bargain Outlet Holding</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>681116109</cusip>
  <value>2357219</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31061</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13480</Sole>
    <Shared>0</Shared>
    <None>17581</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Omnicell, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>68213N109</cusip>
  <value>1279081</value>
  <shrsOrPrnAmt>
    <sshPrnamt>33991</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14767</Sole>
    <Shared>0</Shared>
    <None>19224</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Onto Innovation Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>683344105</cusip>
  <value>3699110</value>
  <shrsOrPrnAmt>
    <sshPrnamt>24193</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10530</Sole>
    <Shared>0</Shared>
    <None>13663</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>OSI Systems, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>671044105</cusip>
  <value>3151917</value>
  <shrsOrPrnAmt>
    <sshPrnamt>24424</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>10643</Sole>
    <Shared>0</Shared>
    <None>13781</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Park Aerospace Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>70014A104</cusip>
  <value>262557</value>
  <shrsOrPrnAmt>
    <sshPrnamt>17861</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>17861</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Paysign</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>70451A104</cusip>
  <value>243186</value>
  <shrsOrPrnAmt>
    <sshPrnamt>86852</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>86852</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Perficient, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71375U101</cusip>
  <value>1692166</value>
  <shrsOrPrnAmt>
    <sshPrnamt>25709</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11235</Sole>
    <Shared>0</Shared>
    <None>14474</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Performance Food Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71377A103</cusip>
  <value>4216076</value>
  <shrsOrPrnAmt>
    <sshPrnamt>60970</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>26429</Sole>
    <Shared>0</Shared>
    <None>34541</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Phibro Animal Health Corporati</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>71742Q106</cusip>
  <value>1543162</value>
  <shrsOrPrnAmt>
    <sshPrnamt>133261</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>69175</Sole>
    <Shared>0</Shared>
    <None>64086</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Photronics</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>719405102</cusip>
  <value>2847612</value>
  <shrsOrPrnAmt>
    <sshPrnamt>90775</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>46163</Sole>
    <Shared>0</Shared>
    <None>44612</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quaker Chemical Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>747316107</cusip>
  <value>2905286</value>
  <shrsOrPrnAmt>
    <sshPrnamt>13613</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5962</Sole>
    <Shared>0</Shared>
    <None>7651</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Qualys Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74758T303</cusip>
  <value>2459977</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12533</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>5439</Sole>
    <Shared>0</Shared>
    <None>7094</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Quipt Home Medical Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>74880P104</cusip>
  <value>206028</value>
  <shrsOrPrnAmt>
    <sshPrnamt>40477</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>40477</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RBC Bearings Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>75524B104</cusip>
  <value>4383887</value>
  <shrsOrPrnAmt>
    <sshPrnamt>15388</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>6648</Sole>
    <Shared>0</Shared>
    <None>8740</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Rogers Corporation</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>775133101</cusip>
  <value>2263019</value>
  <shrsOrPrnAmt>
    <sshPrnamt>17135</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>7463</Sole>
    <Shared>0</Shared>
    <None>9672</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>RPC Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>749660106</cusip>
  <value>1735086</value>
  <shrsOrPrnAmt>
    <sshPrnamt>238336</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>103485</Sole>
    <Shared>0</Shared>
    <None>134851</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Select Energy Services, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>81617J301</cusip>
  <value>2018340</value>
  <shrsOrPrnAmt>
    <sshPrnamt>265921</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>134855</Sole>
    <Shared>0</Shared>
    <None>131066</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Shake Shack Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>819047101</cusip>
  <value>2145848</value>
  <shrsOrPrnAmt>
    <sshPrnamt>28951</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12486</Sole>
    <Shared>0</Shared>
    <None>16465</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Shutterstock Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>825690100</cusip>
  <value>1240796</value>
  <shrsOrPrnAmt>
    <sshPrnamt>25700</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>11187</Sole>
    <Shared>0</Shared>
    <None>14513</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Silicom Ltd.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>M84116108</cusip>
  <value>266595</value>
  <shrsOrPrnAmt>
    <sshPrnamt>14729</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14729</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>SiteOne Landscape Supply, Inc</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>82982L103</cusip>
  <value>3667463</value>
  <shrsOrPrnAmt>
    <sshPrnamt>22569</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>9849</Sole>
    <Shared>0</Shared>
    <None>12720</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Sterling Construction Co</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>859241101</cusip>
  <value>4549322</value>
  <shrsOrPrnAmt>
    <sshPrnamt>51738</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>27796</Sole>
    <Shared>0</Shared>
    <None>23942</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Supernus Pharmaceuticals Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>868459108</cusip>
  <value>2276855</value>
  <shrsOrPrnAmt>
    <sshPrnamt>78675</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>38632</Sole>
    <Shared>0</Shared>
    <None>40043</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Synaptics Incorporated</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>87157D109</cusip>
  <value>2161017</value>
  <shrsOrPrnAmt>
    <sshPrnamt>18943</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8276</Sole>
    <Shared>0</Shared>
    <None>10667</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Tetra Tech Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>88162G103</cusip>
  <value>5309209</value>
  <shrsOrPrnAmt>
    <sshPrnamt>31805</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>13800</Sole>
    <Shared>0</Shared>
    <None>18005</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Texas Roadhouse Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>882681109</cusip>
  <value>2333982</value>
  <shrsOrPrnAmt>
    <sshPrnamt>19095</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>8316</Sole>
    <Shared>0</Shared>
    <None>10779</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>The Joint Corp</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>47973J102</cusip>
  <value>121307</value>
  <shrsOrPrnAmt>
    <sshPrnamt>12623</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>12623</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>UFP Industries Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90278Q108</cusip>
  <value>4515155</value>
  <shrsOrPrnAmt>
    <sshPrnamt>35963</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>15662</Sole>
    <Shared>0</Shared>
    <None>20301</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>US Physical Therapy Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>90337L108</cusip>
  <value>3407993</value>
  <shrsOrPrnAmt>
    <sshPrnamt>36590</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>16856</Sole>
    <Shared>0</Shared>
    <None>19734</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Utah Medical Products Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>917488108</cusip>
  <value>267483</value>
  <shrsOrPrnAmt>
    <sshPrnamt>3176</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>3176</Sole>
    <Shared>0</Shared>
    <None>0</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Vishay Precision Group</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>92835K103</cusip>
  <value>2486122</value>
  <shrsOrPrnAmt>
    <sshPrnamt>72971</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>39194</Sole>
    <Shared>0</Shared>
    <None>33777</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>WD-40 CO COM</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>929236107</cusip>
  <value>1421510</value>
  <shrsOrPrnAmt>
    <sshPrnamt>5946</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>2574</Sole>
    <Shared>0</Shared>
    <None>3372</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Wesbanco Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>950810101</cusip>
  <value>2633323</value>
  <shrsOrPrnAmt>
    <sshPrnamt>83944</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>36564</Sole>
    <Shared>0</Shared>
    <None>47380</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>YETI Holdings</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>98585X104</cusip>
  <value>2582942</value>
  <shrsOrPrnAmt>
    <sshPrnamt>49883</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>21644</Sole>
    <Shared>0</Shared>
    <None>28239</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Ziff Davis, Inc.</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>48123V102</cusip>
  <value>2291717</value>
  <shrsOrPrnAmt>
    <sshPrnamt>34108</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>14801</Sole>
    <Shared>0</Shared>
    <None>19307</None>
  </votingAuthority>
</infoTable>
<infoTable>
  <nameOfIssuer>Zynex</nameOfIssuer>
  <titleOfClass>COM</titleOfClass>
  <cusip>98986M103</cusip>
  <value>1953616</value>
  <shrsOrPrnAmt>
    <sshPrnamt>179395</sshPrnamt>
    <sshPrnamtType>SH</sshPrnamtType>
  </shrsOrPrnAmt>
  <investmentDiscretion>SOLE</investmentDiscretion>
  <votingAuthority>
    <Sole>96972</Sole>
    <Shared>0</Shared>
    <None>82423</None>
  </votingAuthority>
</infoTable>
</informationTable>
