<?xml version="1.0" ?>
<informationTable xsi:schemaLocation="http://www.sec.gov/edgar/document/thirteenf/informationtable eis_13FDocument.xsd" xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable" xmlns:n1="http://www.sec.gov/edgar/document/thirteenf/informationtable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <infoTable>
    <nameOfIssuer>3M CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>88579Y101</cusip>
    <value>51098829</value>
    <shrsOrPrnAmt>
      <sshPrnamt>351848</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>212955</Sole>
      <Shared>0</Shared>
      <None>138893</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AAR CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>000361105</cusip>
    <value>9784739</value>
    <shrsOrPrnAmt>
      <sshPrnamt>89391</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>89391</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ABBOTT LABORATORIES</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>002824100</cusip>
    <value>74105025</value>
    <shrsOrPrnAmt>
      <sshPrnamt>721778</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>524321</Sole>
      <Shared>0</Shared>
      <None>197457</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ABBVIE INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>00287Y109</cusip>
    <value>9855994</value>
    <shrsOrPrnAmt>
      <sshPrnamt>45317</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>34473</Sole>
      <Shared>0</Shared>
      <None>10844</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ACCENTURE PLC IRELAND</nameOfIssuer>
    <titleOfClass>SHS CLASS A</titleOfClass>
    <cusip>G1151C101</cusip>
    <value>243698</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1229</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>948</Sole>
      <Shared>0</Shared>
      <None>281</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ADOBE INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>00724F101</cusip>
    <value>488348</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2009</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1619</Sole>
      <Shared>0</Shared>
      <None>390</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ADVANCED MICRO DEVICES INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>007903107</cusip>
    <value>392620</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1930</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1930</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AEBI SCHMIDT HLDG AG</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>H00501108</cusip>
    <value>100994</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10401</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10401</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALERUS FINL CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>01446U103</cusip>
    <value>1883428</value>
    <shrsOrPrnAmt>
      <sshPrnamt>79436</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>79436</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALLIANT ENERGY CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>018802108</cusip>
    <value>207318946</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2889060</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2494384</Sole>
      <Shared>0</Shared>
      <None>394676</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALPHABET INC</nameOfIssuer>
    <titleOfClass>CAP STK CL C</titleOfClass>
    <cusip>02079K107</cusip>
    <value>462306563</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1611610</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1334820</Sole>
      <Shared>0</Shared>
      <None>276790</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALPHABET INC</nameOfIssuer>
    <titleOfClass>CAP STK CL A</titleOfClass>
    <cusip>02079K305</cusip>
    <value>16036071</value>
    <shrsOrPrnAmt>
      <sshPrnamt>55766</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>37971</Sole>
      <Shared>0</Shared>
      <None>17795</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ALTRIA GROUP INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>02209S103</cusip>
    <value>301163</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4563</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2063</Sole>
      <Shared>0</Shared>
      <None>2500</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMAZON COM INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>023135106</cusip>
    <value>542108482</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2602912</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2274892</Sole>
      <Shared>0</Shared>
      <None>328020</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMBARELLA INC</nameOfIssuer>
    <titleOfClass>SHS</titleOfClass>
    <cusip>G037AX101</cusip>
    <value>6052482</value>
    <shrsOrPrnAmt>
      <sshPrnamt>117581</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>117581</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMCOR PLC</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>G0250X149</cusip>
    <value>680878</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17129</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16517</Sole>
      <Shared>0</Shared>
      <None>612</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMERICAN EXPRESS CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>025816109</cusip>
    <value>45015527</value>
    <shrsOrPrnAmt>
      <sshPrnamt>148821</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>105062</Sole>
      <Shared>0</Shared>
      <None>43759</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMERICAN TOWER CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>03027X100</cusip>
    <value>348612</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2020</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>700</Sole>
      <Shared>0</Shared>
      <None>1320</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMERICAN WTR WKS CO INC NEW</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>030420103</cusip>
    <value>683852</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5025</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5000</Sole>
      <Shared>0</Shared>
      <None>25</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMERIPRISE FINL INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>03076C106</cusip>
    <value>87567687</value>
    <shrsOrPrnAmt>
      <sshPrnamt>197047</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>176266</Sole>
      <Shared>0</Shared>
      <None>20781</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AMGEN INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>031162100</cusip>
    <value>1746583</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4964</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4293</Sole>
      <Shared>0</Shared>
      <None>671</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ANALOG DEVICES INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>032654105</cusip>
    <value>206155</value>
    <shrsOrPrnAmt>
      <sshPrnamt>648</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>648</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>API GROUP CORP</nameOfIssuer>
    <titleOfClass>COM STK</titleOfClass>
    <cusip>00187Y100</cusip>
    <value>2348904</value>
    <shrsOrPrnAmt>
      <sshPrnamt>57969</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>57969</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>APPLE INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>037833100</cusip>
    <value>306679348</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1208398</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1040952</Sole>
      <Shared>0</Shared>
      <None>167446</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>APPLIED MATLS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>038222105</cusip>
    <value>3871455</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11327</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10477</Sole>
      <Shared>0</Shared>
      <None>850</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ASSOCIATED BANC-CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>045487105</cusip>
    <value>6983234</value>
    <shrsOrPrnAmt>
      <sshPrnamt>270040</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>270040</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AT&amp;T INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>00206R102</cusip>
    <value>328370</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11327</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5334</Sole>
      <Shared>0</Shared>
      <None>5993</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AUTOMATIC DATA PROCESSING IN</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>053015103</cusip>
    <value>25282906</value>
    <shrsOrPrnAmt>
      <sshPrnamt>124436</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>100863</Sole>
      <Shared>0</Shared>
      <None>23573</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AXOGEN INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>05463X106</cusip>
    <value>728860</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>22000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BADGER METER INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>056525108</cusip>
    <value>15968638</value>
    <shrsOrPrnAmt>
      <sshPrnamt>104815</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>70300</Sole>
      <Shared>0</Shared>
      <None>34515</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BANK AMERICA CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>060505104</cusip>
    <value>1058216</value>
    <shrsOrPrnAmt>
      <sshPrnamt>21707</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14051</Sole>
      <Shared>0</Shared>
      <None>7656</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BANK HAWAII CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>062540109</cusip>
    <value>297000</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BANK MONTREAL MEDIUM</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>063671101</cusip>
    <value>913004</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6746</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6746</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BANK NEW YORK MELLON CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>064058100</cusip>
    <value>698493</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5888</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5713</Sole>
      <Shared>0</Shared>
      <None>175</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BAXTER INTL INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>071813109</cusip>
    <value>378722</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22543</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10475</Sole>
      <Shared>0</Shared>
      <None>12068</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BECTON DICKINSON &amp; CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>075887109</cusip>
    <value>1119320</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7119</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6919</Sole>
      <Shared>0</Shared>
      <None>200</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BENTLEY SYS INC</nameOfIssuer>
    <titleOfClass>COM CL B</titleOfClass>
    <cusip>08265T208</cusip>
    <value>8293869</value>
    <shrsOrPrnAmt>
      <sshPrnamt>236158</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>236158</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BERKSHIRE HATHAWAY INC DEL</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>084670108</cusip>
    <value>3590700</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BERKSHIRE HATHAWAY INC DEL</nameOfIssuer>
    <titleOfClass>CL B NEW</titleOfClass>
    <cusip>084670702</cusip>
    <value>11466777</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23929</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15673</Sole>
      <Shared>0</Shared>
      <None>8256</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BEST BUY INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>086516101</cusip>
    <value>378459</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5895</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5895</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BIO-TECHNE CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>09073M104</cusip>
    <value>143729727</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2750282</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2382418</Sole>
      <Shared>0</Shared>
      <None>367864</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BLACK HILLS CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>092113109</cusip>
    <value>6821962</value>
    <shrsOrPrnAmt>
      <sshPrnamt>98285</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>98285</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BOEING CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>097023105</cusip>
    <value>516881</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2597</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1897</Sole>
      <Shared>0</Shared>
      <None>700</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BOSTON SCIENTIFIC CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>101137107</cusip>
    <value>638544</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10176</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10176</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BP PLC</nameOfIssuer>
    <titleOfClass>SPONSORED ADR</titleOfClass>
    <cusip>055622104</cusip>
    <value>263670</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5610</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3110</Sole>
      <Shared>0</Shared>
      <None>2500</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BRADY CORP</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>104674106</cusip>
    <value>568680</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BRISTOL-MYERS SQUIBB CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>110122108</cusip>
    <value>1467730</value>
    <shrsOrPrnAmt>
      <sshPrnamt>24200</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16482</Sole>
      <Shared>0</Shared>
      <None>7718</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BROADCOM INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>11135F101</cusip>
    <value>1093499</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3533</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3533</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>C H ROBINSON WORLDWIDE IN</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>12541W209</cusip>
    <value>140861226</value>
    <shrsOrPrnAmt>
      <sshPrnamt>848203</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>743302</Sole>
      <Shared>0</Shared>
      <None>104901</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CANADIAN IMPERIAL BANK OF CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>136069101</cusip>
    <value>964176</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10176</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10176</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CARDINAL HEALTH INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>14149Y108</cusip>
    <value>448189</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2121</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2121</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CASEYS GEN STORES INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>147528103</cusip>
    <value>69828705</value>
    <shrsOrPrnAmt>
      <sshPrnamt>95937</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>85448</Sole>
      <Shared>0</Shared>
      <None>10489</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CATERPILLAR INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>149123101</cusip>
    <value>13071087</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18450</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17072</Sole>
      <Shared>0</Shared>
      <None>1378</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CHEVRON CORPORATION</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>166764100</cusip>
    <value>8072617</value>
    <shrsOrPrnAmt>
      <sshPrnamt>39017</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>27717</Sole>
      <Shared>0</Shared>
      <None>11300</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CHUBB LTD SWITZ</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>H1467J104</cusip>
    <value>794943</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2439</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2164</Sole>
      <Shared>0</Shared>
      <None>275</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CIENA CORP</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>171779309</cusip>
    <value>1087044</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2800</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2800</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CINTAS CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>172908105</cusip>
    <value>3795163</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22438</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15754</Sole>
      <Shared>0</Shared>
      <None>6684</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CISCO SYS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>17275R102</cusip>
    <value>1538377</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19827</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16279</Sole>
      <Shared>0</Shared>
      <None>3548</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CLEARFIELD INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>18482P103</cusip>
    <value>19368973</value>
    <shrsOrPrnAmt>
      <sshPrnamt>731733</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>685512</Sole>
      <Shared>0</Shared>
      <None>46221</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CLEVELAND-CLIFFS INC NEW</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>185899101</cusip>
    <value>114075</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13500</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13500</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>COCA COLA CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>191216100</cusip>
    <value>1773106</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23315</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12455</Sole>
      <Shared>0</Shared>
      <None>10860</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>COGNEX CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>192422103</cusip>
    <value>59957636</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1223875</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1101172</Sole>
      <Shared>0</Shared>
      <None>122703</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CONOCOPHILLIPS</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>20825C104</cusip>
    <value>3435696</value>
    <shrsOrPrnAmt>
      <sshPrnamt>26028</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>21928</Sole>
      <Shared>0</Shared>
      <None>4100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CORNING INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>219350105</cusip>
    <value>11999353</value>
    <shrsOrPrnAmt>
      <sshPrnamt>88250</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>74640</Sole>
      <Shared>0</Shared>
      <None>13610</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>COSTCO WHOLESALE CORPORATION</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>22160K105</cusip>
    <value>2952422</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2963</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2697</Sole>
      <Shared>0</Shared>
      <None>266</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CULLEN FROST BANKERS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>229899109</cusip>
    <value>5852768</value>
    <shrsOrPrnAmt>
      <sshPrnamt>42696</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>42696</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CUMMINS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>231021106</cusip>
    <value>284075</value>
    <shrsOrPrnAmt>
      <sshPrnamt>528</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>528</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DANAHER CORP DEL</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>235851102</cusip>
    <value>215196</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1135</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1060</Sole>
      <Shared>0</Shared>
      <None>75</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DEERE &amp; CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>244199105</cusip>
    <value>322208</value>
    <shrsOrPrnAmt>
      <sshPrnamt>572</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>132</Sole>
      <Shared>0</Shared>
      <None>440</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DIGI INTL INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>253798102</cusip>
    <value>337400</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DISNEY WALT CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>254687106</cusip>
    <value>23116357</value>
    <shrsOrPrnAmt>
      <sshPrnamt>239846</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>164996</Sole>
      <Shared>0</Shared>
      <None>74850</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DONALDSON INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>257651109</cusip>
    <value>42381944</value>
    <shrsOrPrnAmt>
      <sshPrnamt>499374</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>369351</Sole>
      <Shared>0</Shared>
      <None>130023</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ECOLAB INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>278865100</cusip>
    <value>202658747</value>
    <shrsOrPrnAmt>
      <sshPrnamt>761818</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>628517</Sole>
      <Shared>0</Shared>
      <None>133301</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ELI LILLY &amp; CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>532457108</cusip>
    <value>300126470</value>
    <shrsOrPrnAmt>
      <sshPrnamt>326306</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>273711</Sole>
      <Shared>0</Shared>
      <None>52595</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EMERSON ELEC CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>291011104</cusip>
    <value>8483807</value>
    <shrsOrPrnAmt>
      <sshPrnamt>64752</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>53093</Sole>
      <Shared>0</Shared>
      <None>11659</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ENTEGRIS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>29362U104</cusip>
    <value>157465513</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1343104</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1201280</Sole>
      <Shared>0</Shared>
      <None>141824</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ENTERPRISE PRODS PARTNERS L</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>293792107</cusip>
    <value>325424</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8600</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8600</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EXXON MOBIL CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>30231G102</cusip>
    <value>14170512</value>
    <shrsOrPrnAmt>
      <sshPrnamt>83523</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>59775</Sole>
      <Shared>0</Shared>
      <None>23748</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FASTENAL CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>311900104</cusip>
    <value>182001337</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3922442</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3230200</Sole>
      <Shared>0</Shared>
      <None>692242</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FISERV INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>337738108</cusip>
    <value>120129197</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2152853</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1891359</Sole>
      <Shared>0</Shared>
      <None>261494</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FULLER H B CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>359694106</cusip>
    <value>145664537</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2361617</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2102822</Sole>
      <Shared>0</Shared>
      <None>258795</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GE AEROSPACE</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>369604301</cusip>
    <value>2135369</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7525</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7525</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GE VERNOVA INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>36828A101</cusip>
    <value>738473</value>
    <shrsOrPrnAmt>
      <sshPrnamt>846</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>846</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GENERAC HLDGS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>368736104</cusip>
    <value>19483582</value>
    <shrsOrPrnAmt>
      <sshPrnamt>99747</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>77008</Sole>
      <Shared>0</Shared>
      <None>22739</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GENERAL MILLS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>370334104</cusip>
    <value>3607511</value>
    <shrsOrPrnAmt>
      <sshPrnamt>96924</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>60032</Sole>
      <Shared>0</Shared>
      <None>36892</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GILEAD SCIENCES INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>375558103</cusip>
    <value>317067</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2275</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1875</Sole>
      <Shared>0</Shared>
      <None>400</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GLACIER BANCORP INC NEW</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>37637Q105</cusip>
    <value>4743954</value>
    <shrsOrPrnAmt>
      <sshPrnamt>106200</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>106200</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GRACO INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>384109104</cusip>
    <value>322997719</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3815684</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3211577</Sole>
      <Shared>0</Shared>
      <None>604107</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HARLEY DAVIDSON INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>412822108</cusip>
    <value>283080</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HAWKINS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>420261109</cusip>
    <value>3986074</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25951</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17847</Sole>
      <Shared>0</Shared>
      <None>8104</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HERSHEY CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>427866108</cusip>
    <value>13421378</value>
    <shrsOrPrnAmt>
      <sshPrnamt>64560</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>52445</Sole>
      <Shared>0</Shared>
      <None>12115</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HOME DEPOT INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>437076102</cusip>
    <value>50451122</value>
    <shrsOrPrnAmt>
      <sshPrnamt>153398</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>107201</Sole>
      <Shared>0</Shared>
      <None>46197</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HONEYWELL INTL INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>438516106</cusip>
    <value>47115501</value>
    <shrsOrPrnAmt>
      <sshPrnamt>208448</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>142374</Sole>
      <Shared>0</Shared>
      <None>66074</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HORMEL FOODS CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>440452100</cusip>
    <value>77416771</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3417959</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2887363</Sole>
      <Shared>0</Shared>
      <None>530596</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HUB GROUP INC</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>443320106</cusip>
    <value>5763985</value>
    <shrsOrPrnAmt>
      <sshPrnamt>159933</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>159933</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HUNTINGTON BANCSHARES INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>446150104</cusip>
    <value>426353</value>
    <shrsOrPrnAmt>
      <sshPrnamt>27243</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>27243</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>IDACORP INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>451107106</cusip>
    <value>43087870</value>
    <shrsOrPrnAmt>
      <sshPrnamt>301377</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>268578</Sole>
      <Shared>0</Shared>
      <None>32799</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>IDEX CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>45167R104</cusip>
    <value>758200</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>IDEXX LABS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>45168D104</cusip>
    <value>1168731</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2080</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2080</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ILLINOIS TOOL WKS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>452308109</cusip>
    <value>386270</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1484</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1484</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>INTEL CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>458140100</cusip>
    <value>632515</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14333</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4500</Sole>
      <Shared>0</Shared>
      <None>9833</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>INTERNATIONAL BUSINESS MACHS</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>459200101</cusip>
    <value>883996</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3647</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3447</Sole>
      <Shared>0</Shared>
      <None>200</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>INTUITIVE SURGICAL INC</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>46120E602</cusip>
    <value>46045986</value>
    <shrsOrPrnAmt>
      <sshPrnamt>99885</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>87732</Sole>
      <Shared>0</Shared>
      <None>12153</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>INVESCO EXCHANGE TRADED FD T</nameOfIssuer>
    <titleOfClass>S&amp;P500 EQL WGT</titleOfClass>
    <cusip>46137V357</cusip>
    <value>1033489</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5385</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5385</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>INVESCO QQQ TR</nameOfIssuer>
    <titleOfClass>UNIT SER 1</titleOfClass>
    <cusip>46090E103</cusip>
    <value>1015943</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1760</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1060</Sole>
      <Shared>0</Shared>
      <None>700</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES GOLD TR</nameOfIssuer>
    <titleOfClass>ISHARES NEW</titleOfClass>
    <cusip>464285204</cusip>
    <value>310764</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3525</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3525</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>GLOBAL TECH ETF</titleOfClass>
    <cusip>464287291</cusip>
    <value>314780</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3150</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3150</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>MSCI EAFE ETF</titleOfClass>
    <cusip>464287465</cusip>
    <value>1525203</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15702</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15702</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>S&amp;P 500 GRWT ETF</titleOfClass>
    <cusip>464287309</cusip>
    <value>283793</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2509</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2509</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>CORE S&amp;P500 ETF</titleOfClass>
    <cusip>464287200</cusip>
    <value>4220850</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6461</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6461</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>IBONDS 26 TRM TS</titleOfClass>
    <cusip>46436E858</cusip>
    <value>326653</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14255</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>14255</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>MSCI USA MIN VOL</titleOfClass>
    <cusip>46429B697</cusip>
    <value>360010</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3884</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3884</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>MSCI ACWI EX US</titleOfClass>
    <cusip>464288240</cusip>
    <value>516949</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7550</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7550</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>CORE S&amp;P SCP ETF</titleOfClass>
    <cusip>464287804</cusip>
    <value>299587</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2410</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>684</Sole>
      <Shared>0</Shared>
      <None>1726</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>S&amp;P 500 VAL ETF</titleOfClass>
    <cusip>464287408</cusip>
    <value>241344</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1143</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1143</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ISHARES TR</nameOfIssuer>
    <titleOfClass>RUS 1000 VAL ETF</titleOfClass>
    <cusip>464287598</cusip>
    <value>547423</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2562</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2562</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JAMES HARDIE INDS PLC</nameOfIssuer>
    <titleOfClass>ORD SHS</titleOfClass>
    <cusip>G4253H101</cusip>
    <value>4560013</value>
    <shrsOrPrnAmt>
      <sshPrnamt>240761</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>236486</Sole>
      <Shared>0</Shared>
      <None>4275</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JBT MAREL CORPORATION</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>477839104</cusip>
    <value>7557117</value>
    <shrsOrPrnAmt>
      <sshPrnamt>59100</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>59100</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JOHNSON &amp; JOHNSON</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>478160104</cusip>
    <value>141186327</value>
    <shrsOrPrnAmt>
      <sshPrnamt>577590</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>431521</Sole>
      <Shared>0</Shared>
      <None>146069</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JPMORGAN CHASE &amp; CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>46625H100</cusip>
    <value>310102590</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1054197</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>932683</Sole>
      <Shared>0</Shared>
      <None>121514</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>KIMBERLY-CLARK CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>494368103</cusip>
    <value>935180</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9694</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9241</Sole>
      <Shared>0</Shared>
      <None>453</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>KNIFE RIVER CORP</nameOfIssuer>
    <titleOfClass>COMMON STOCK</titleOfClass>
    <cusip>498894104</cusip>
    <value>10976046</value>
    <shrsOrPrnAmt>
      <sshPrnamt>134428</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>134428</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>KRAFT HEINZ CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>500754106</cusip>
    <value>7119502</value>
    <shrsOrPrnAmt>
      <sshPrnamt>316563</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>200113</Sole>
      <Shared>0</Shared>
      <None>116450</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>L3HARRIS TECHNOLOGIES INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>502431109</cusip>
    <value>356540</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1033</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1033</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>LIFE TIME GROUP HOLDINGS INC</nameOfIssuer>
    <titleOfClass>COMMON STOCK</titleOfClass>
    <cusip>53190C102</cusip>
    <value>4642220</value>
    <shrsOrPrnAmt>
      <sshPrnamt>172317</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>172317</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>LITTELFUSE INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>537008104</cusip>
    <value>245930339</value>
    <shrsOrPrnAmt>
      <sshPrnamt>724710</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>633357</Sole>
      <Shared>0</Shared>
      <None>91353</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>LOWES COS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>548661107</cusip>
    <value>1618518</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6850</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6432</Sole>
      <Shared>0</Shared>
      <None>418</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MARATHON PETE CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>56585A102</cusip>
    <value>339410</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1390</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>390</Sole>
      <Shared>0</Shared>
      <None>1000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MARSH &amp; MCLENNAN COS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>571748102</cusip>
    <value>225485</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1300</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1300</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MASTERCARD INCORPORATED</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>57636Q104</cusip>
    <value>259823</value>
    <shrsOrPrnAmt>
      <sshPrnamt>520</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>286</Sole>
      <Shared>0</Shared>
      <None>234</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MCDONALDS CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>580135101</cusip>
    <value>4453538</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14329</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13548</Sole>
      <Shared>0</Shared>
      <None>781</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MEDPACE HLDGS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>58506Q109</cusip>
    <value>41161887</value>
    <shrsOrPrnAmt>
      <sshPrnamt>85720</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>79645</Sole>
      <Shared>0</Shared>
      <None>6075</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MEDTRONIC PLC</nameOfIssuer>
    <titleOfClass>SHS</titleOfClass>
    <cusip>G5960L103</cusip>
    <value>34830602</value>
    <shrsOrPrnAmt>
      <sshPrnamt>401968</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>322812</Sole>
      <Shared>0</Shared>
      <None>79156</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MERCK &amp; CO INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>58933Y105</cusip>
    <value>6056361</value>
    <shrsOrPrnAmt>
      <sshPrnamt>50348</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>35125</Sole>
      <Shared>0</Shared>
      <None>15223</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>META PLATFORMS INC</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>30303M102</cusip>
    <value>185727701</value>
    <shrsOrPrnAmt>
      <sshPrnamt>324625</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>292223</Sole>
      <Shared>0</Shared>
      <None>32402</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MICRON TECHNOLOGY INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>595112103</cusip>
    <value>234123</value>
    <shrsOrPrnAmt>
      <sshPrnamt>693</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>693</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MICROSOFT CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>594918104</cusip>
    <value>719014922</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1942391</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1698591</Sole>
      <Shared>0</Shared>
      <None>243800</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MOSAIC CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>61945C103</cusip>
    <value>510000</value>
    <shrsOrPrnAmt>
      <sshPrnamt>20000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>20000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MOTOROLA SOLUTIONS INC</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>620076307</cusip>
    <value>234661466</value>
    <shrsOrPrnAmt>
      <sshPrnamt>540732</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>475420</Sole>
      <Shared>0</Shared>
      <None>65312</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MSA SAFETY INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>553498106</cusip>
    <value>241007</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1470</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1470</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MURPHY OIL CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>626717102</cusip>
    <value>206250</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NEWMONT CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>651639106</cusip>
    <value>541250</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NEXTERA ENERGY INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>65339F101</cusip>
    <value>1139823</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12272</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10278</Sole>
      <Shared>0</Shared>
      <None>1994</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NIKE INC</nameOfIssuer>
    <titleOfClass>CL B</titleOfClass>
    <cusip>654106103</cusip>
    <value>3483743</value>
    <shrsOrPrnAmt>
      <sshPrnamt>65955</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>46505</Sole>
      <Shared>0</Shared>
      <None>19450</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NORFOLK SOUTHN CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>655844108</cusip>
    <value>779205</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2715</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>915</Sole>
      <Shared>0</Shared>
      <None>1800</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NORTHERN TR CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>665859104</cusip>
    <value>334968</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2400</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>400</Sole>
      <Shared>0</Shared>
      <None>2000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NORTHWESTERN ENERGY GROUP IN</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>668074305</cusip>
    <value>5670972</value>
    <shrsOrPrnAmt>
      <sshPrnamt>86002</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>86002</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NVE CORP</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>629445206</cusip>
    <value>393000</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NVENT ELEC PLC</nameOfIssuer>
    <titleOfClass>SHS</titleOfClass>
    <cusip>G6700G107</cusip>
    <value>244416234</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2066420</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1820346</Sole>
      <Shared>0</Shared>
      <None>246074</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NVIDIA CORPORATION</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>67066G104</cusip>
    <value>830379664</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4761351</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4072801</Sole>
      <Shared>0</Shared>
      <None>688550</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>OKLO INC</nameOfIssuer>
    <titleOfClass>COM CL A</titleOfClass>
    <cusip>02156V109</cusip>
    <value>771670</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15561</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1561</Sole>
      <Shared>0</Shared>
      <None>14000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>OLD NATL BANCORP IND</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>680033107</cusip>
    <value>9573521</value>
    <shrsOrPrnAmt>
      <sshPrnamt>433191</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>433191</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ORACLE CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>68389X105</cusip>
    <value>4518925</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30718</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>24393</Sole>
      <Shared>0</Shared>
      <None>6325</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>OSHKOSH CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>688239201</cusip>
    <value>4884869</value>
    <shrsOrPrnAmt>
      <sshPrnamt>33183</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>33183</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PALO ALTO NETWORKS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>697435105</cusip>
    <value>85399097</value>
    <shrsOrPrnAmt>
      <sshPrnamt>532679</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>485573</Sole>
      <Shared>0</Shared>
      <None>47106</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PATRICK INDS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>703343103</cusip>
    <value>6430287</value>
    <shrsOrPrnAmt>
      <sshPrnamt>57894</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>57894</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PENTAIR PLC</nameOfIssuer>
    <titleOfClass>SHS</titleOfClass>
    <cusip>G7S00T104</cusip>
    <value>5015620</value>
    <shrsOrPrnAmt>
      <sshPrnamt>57578</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>56298</Sole>
      <Shared>0</Shared>
      <None>1280</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PEPSICO INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>713448108</cusip>
    <value>1394194</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8978</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8978</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PFIZER INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>717081103</cusip>
    <value>2016958</value>
    <shrsOrPrnAmt>
      <sshPrnamt>71829</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>59839</Sole>
      <Shared>0</Shared>
      <None>11990</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PHILIP MORRIS INTL INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>718172109</cusip>
    <value>419468</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2537</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>37</Sole>
      <Shared>0</Shared>
      <None>2500</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PHILLIPS 66</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>718546104</cusip>
    <value>1203117</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6604</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5304</Sole>
      <Shared>0</Shared>
      <None>1300</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PIPER SANDLER COMPANIES</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>724078209</cusip>
    <value>41803190</value>
    <shrsOrPrnAmt>
      <sshPrnamt>546090</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>495246</Sole>
      <Shared>0</Shared>
      <None>50844</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PLEXUS CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>729132100</cusip>
    <value>9290105</value>
    <shrsOrPrnAmt>
      <sshPrnamt>45868</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>45868</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PLUG PWR INC</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>72919P202</cusip>
    <value>22600</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>POLARIS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>731068102</cusip>
    <value>3405760</value>
    <shrsOrPrnAmt>
      <sshPrnamt>62491</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>60056</Sole>
      <Shared>0</Shared>
      <None>2435</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PRINCIPAL FINANCIAL GROUP IN</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>74251V102</cusip>
    <value>14767665</value>
    <shrsOrPrnAmt>
      <sshPrnamt>163884</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>117121</Sole>
      <Shared>0</Shared>
      <None>46763</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PROCTER &amp; GAMBLE CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>742718109</cusip>
    <value>35158089</value>
    <shrsOrPrnAmt>
      <sshPrnamt>243410</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>187995</Sole>
      <Shared>0</Shared>
      <None>55415</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>QCR HLDGS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>74727A104</cusip>
    <value>7776121</value>
    <shrsOrPrnAmt>
      <sshPrnamt>91002</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>91002</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>QUALCOMM INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>747525103</cusip>
    <value>61564052</value>
    <shrsOrPrnAmt>
      <sshPrnamt>478055</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>381948</Sole>
      <Shared>0</Shared>
      <None>96107</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>RADNET INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>750491102</cusip>
    <value>7439853</value>
    <shrsOrPrnAmt>
      <sshPrnamt>133116</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>133116</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ROCKWELL AUTOMATION INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>773903109</cusip>
    <value>101761501</value>
    <shrsOrPrnAmt>
      <sshPrnamt>283553</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>242980</Sole>
      <Shared>0</Shared>
      <None>40573</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>RTX CORPORATION</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>75513E101</cusip>
    <value>1651610</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8562</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5506</Sole>
      <Shared>0</Shared>
      <None>3056</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SALESFORCE INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>79466L302</cusip>
    <value>9332753</value>
    <shrsOrPrnAmt>
      <sshPrnamt>49996</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>34612</Sole>
      <Shared>0</Shared>
      <None>15384</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SCHWAB CHARLES CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>808513105</cusip>
    <value>23281853</value>
    <shrsOrPrnAmt>
      <sshPrnamt>247732</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>165829</Sole>
      <Shared>0</Shared>
      <None>81903</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SCHWAB STRATEGIC TR</nameOfIssuer>
    <titleOfClass>INTL EQTY ETF</titleOfClass>
    <cusip>808524805</cusip>
    <value>757004</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30586</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>586</Sole>
      <Shared>0</Shared>
      <None>30000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SCHWAB STRATEGIC TR</nameOfIssuer>
    <titleOfClass>US BRD MKT ETF</titleOfClass>
    <cusip>808524102</cusip>
    <value>6557275</value>
    <shrsOrPrnAmt>
      <sshPrnamt>261246</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>84246</Sole>
      <Shared>0</Shared>
      <None>177000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SEI INVTS CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>784117103</cusip>
    <value>258951</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3300</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>3300</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SELECT SECTOR SPDR TR</nameOfIssuer>
    <titleOfClass>STATE STREET TEC</titleOfClass>
    <cusip>81369Y803</cusip>
    <value>594090</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4470</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4470</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SHELL PLC</nameOfIssuer>
    <titleOfClass>SPON ADS</titleOfClass>
    <cusip>780259305</cusip>
    <value>756276</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8132</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8132</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SHERWIN WILLIAMS CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>824348106</cusip>
    <value>140324023</value>
    <shrsOrPrnAmt>
      <sshPrnamt>437760</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>389648</Sole>
      <Shared>0</Shared>
      <None>48112</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SKYWATER TECHNOLOGY INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>83089J108</cusip>
    <value>356330</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SLB LIMITED</nameOfIssuer>
    <titleOfClass>COM STK</titleOfClass>
    <cusip>806857108</cusip>
    <value>282645</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5500</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5500</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SNAP INC</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>83304A106</cusip>
    <value>103615</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22525</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>22525</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SNAP ON INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>833034101</cusip>
    <value>1134336</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3123</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2998</Sole>
      <Shared>0</Shared>
      <None>125</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SOLSTICE ADVANCED MATLS INC</nameOfIssuer>
    <titleOfClass>COM SHS</titleOfClass>
    <cusip>83443Q103</cusip>
    <value>1693722</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22239</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17163</Sole>
      <Shared>0</Shared>
      <None>5076</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SOLVENTUM CORP</nameOfIssuer>
    <titleOfClass>COM SHS</titleOfClass>
    <cusip>83444M101</cusip>
    <value>4735099</value>
    <shrsOrPrnAmt>
      <sshPrnamt>72513</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>40643</Sole>
      <Shared>0</Shared>
      <None>31870</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR GOLD TR</nameOfIssuer>
    <titleOfClass>GOLD SHS</titleOfClass>
    <cusip>78463V107</cusip>
    <value>615315</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1430</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1130</Sole>
      <Shared>0</Shared>
      <None>300</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR SERIES TRUST</nameOfIssuer>
    <titleOfClass>STATE STREET SPD</titleOfClass>
    <cusip>78468R663</cusip>
    <value>640105</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6985</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5892</Sole>
      <Shared>0</Shared>
      <None>1093</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPROUTS FMRS MKT INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>85208M102</cusip>
    <value>22535612</value>
    <shrsOrPrnAmt>
      <sshPrnamt>292177</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>265242</Sole>
      <Shared>0</Shared>
      <None>26935</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>STATE STR SPDR S&amp;P 500 ETF T</nameOfIssuer>
    <titleOfClass>TR UNIT</titleOfClass>
    <cusip>78462F103</cusip>
    <value>17676384</value>
    <shrsOrPrnAmt>
      <sshPrnamt>27180</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>26376</Sole>
      <Shared>0</Shared>
      <None>804</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>STATE STR SPDR S&amp;P MIDCAP 40</nameOfIssuer>
    <titleOfClass>UTSER1 S&amp;PDCRP</titleOfClass>
    <cusip>78467Y107</cusip>
    <value>505203</value>
    <shrsOrPrnAmt>
      <sshPrnamt>819</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>819</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>STRYKER CORPORATION</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>863667101</cusip>
    <value>1365291</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4155</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4060</Sole>
      <Shared>0</Shared>
      <None>95</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>STURM RUGER &amp; CO INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>864159108</cusip>
    <value>481080</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SYSCO CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>871829107</cusip>
    <value>7081571</value>
    <shrsOrPrnAmt>
      <sshPrnamt>99279</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>76723</Sole>
      <Shared>0</Shared>
      <None>22556</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TAIWAN SEMICONDUCTOR MANUFAC</nameOfIssuer>
    <titleOfClass>SPONSORED ADS</titleOfClass>
    <cusip>874039100</cusip>
    <value>164329539</value>
    <shrsOrPrnAmt>
      <sshPrnamt>486253</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>437464</Sole>
      <Shared>0</Shared>
      <None>48789</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TARGET CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>87612E106</cusip>
    <value>20468179</value>
    <shrsOrPrnAmt>
      <sshPrnamt>168879</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>132611</Sole>
      <Shared>0</Shared>
      <None>36268</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TENNANT CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>880345103</cusip>
    <value>53350010</value>
    <shrsOrPrnAmt>
      <sshPrnamt>803464</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>686297</Sole>
      <Shared>0</Shared>
      <None>117167</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TEXAS INSTRS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>882508104</cusip>
    <value>44875655</value>
    <shrsOrPrnAmt>
      <sshPrnamt>231151</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>196535</Sole>
      <Shared>0</Shared>
      <None>34616</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>THERMO FISHER SCIENTIFIC INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>883556102</cusip>
    <value>609989</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1241</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>241</Sole>
      <Shared>0</Shared>
      <None>1000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TIMKEN CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>887389104</cusip>
    <value>201140</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TJX COS INC NEW</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>872540109</cusip>
    <value>529406</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3315</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3315</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TORO CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>891092108</cusip>
    <value>254061812</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2718983</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2308837</Sole>
      <Shared>0</Shared>
      <None>410146</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TRANE TECHNOLOGIES PLC</nameOfIssuer>
    <titleOfClass>SHS</titleOfClass>
    <cusip>G8994E103</cusip>
    <value>457164</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1097</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>539</Sole>
      <Shared>0</Shared>
      <None>558</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TRAVELERS COMPANIES INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>89417E109</cusip>
    <value>41539316</value>
    <shrsOrPrnAmt>
      <sshPrnamt>142414</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>122014</Sole>
      <Shared>0</Shared>
      <None>20400</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TREX INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>89531P105</cusip>
    <value>4225521</value>
    <shrsOrPrnAmt>
      <sshPrnamt>116022</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>116022</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TRUST FOR PROFESSIONAL MANAG</nameOfIssuer>
    <titleOfClass>MAIRS &amp; PWR MINN</titleOfClass>
    <cusip>89834G836</cusip>
    <value>9090429</value>
    <shrsOrPrnAmt>
      <sshPrnamt>410865</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>383932</Sole>
      <Shared>0</Shared>
      <None>26933</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UIPATH INC</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>90364P105</cusip>
    <value>340770</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30700</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14250</Sole>
      <Shared>0</Shared>
      <None>16450</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ULTA BEAUTY INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>90384S303</cusip>
    <value>316240</value>
    <shrsOrPrnAmt>
      <sshPrnamt>605</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>545</Sole>
      <Shared>0</Shared>
      <None>60</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UNION PAC CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>907818108</cusip>
    <value>1016578</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4190</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2070</Sole>
      <Shared>0</Shared>
      <None>2120</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UNITED FIRE GROUP INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>910340108</cusip>
    <value>244596</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6600</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6600</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UNITED PARCEL SVCS INC</nameOfIssuer>
    <titleOfClass>CL B</titleOfClass>
    <cusip>911312106</cusip>
    <value>1714468</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17427</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10098</Sole>
      <Shared>0</Shared>
      <None>7329</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UNITED THERAPEUTICS CORP DEL</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>91307C102</cusip>
    <value>207543</value>
    <shrsOrPrnAmt>
      <sshPrnamt>350</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>350</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>UNITEDHEALTH GROUP INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>91324P102</cusip>
    <value>200529681</value>
    <shrsOrPrnAmt>
      <sshPrnamt>741083</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>644771</Sole>
      <Shared>0</Shared>
      <None>96312</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>US BANCORP</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>902973304</cusip>
    <value>31284966</value>
    <shrsOrPrnAmt>
      <sshPrnamt>601518</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>484042</Sole>
      <Shared>0</Shared>
      <None>117476</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INDEX FDS</nameOfIssuer>
    <titleOfClass>S&amp;P 500 ETF SHS</titleOfClass>
    <cusip>922908363</cusip>
    <value>8883452</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14866</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14866</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INDEX FDS</nameOfIssuer>
    <titleOfClass>MID CAP ETF</titleOfClass>
    <cusip>922908629</cusip>
    <value>3158118</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10997</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10997</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INDEX FDS</nameOfIssuer>
    <titleOfClass>LARGE CAP ETF</titleOfClass>
    <cusip>922908637</cusip>
    <value>244160</value>
    <shrsOrPrnAmt>
      <sshPrnamt>817</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>817</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INDEX FDS</nameOfIssuer>
    <titleOfClass>TOTAL STK MKT</titleOfClass>
    <cusip>922908769</cusip>
    <value>496273</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1546</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1211</Sole>
      <Shared>0</Shared>
      <None>335</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INDEX FDS</nameOfIssuer>
    <titleOfClass>SMALL CP ETF</titleOfClass>
    <cusip>922908751</cusip>
    <value>1520490</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5805</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5805</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INDEX FDS</nameOfIssuer>
    <titleOfClass>GROWTH ETF</titleOfClass>
    <cusip>922908736</cusip>
    <value>300512</value>
    <shrsOrPrnAmt>
      <sshPrnamt>688</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>688</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INTL EQUITY INDEX F</nameOfIssuer>
    <titleOfClass>FTSE EMR MKT ETF</titleOfClass>
    <cusip>922042858</cusip>
    <value>1108836</value>
    <shrsOrPrnAmt>
      <sshPrnamt>20515</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>20515</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD INTL EQUITY INDEX F</nameOfIssuer>
    <titleOfClass>ALLWRLD EX US</titleOfClass>
    <cusip>922042775</cusip>
    <value>238668</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3178</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3178</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD SCOTTSDALE FDS</nameOfIssuer>
    <titleOfClass>VNG RUS1000IDX</titleOfClass>
    <cusip>92206C730</cusip>
    <value>963555</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3270</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3270</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD SCOTTSDALE FDS</nameOfIssuer>
    <titleOfClass>LONG TERM TREAS</titleOfClass>
    <cusip>92206C847</cusip>
    <value>713018</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12875</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12875</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD SPECIALIZED FUNDS</nameOfIssuer>
    <titleOfClass>DIV APP ETF</titleOfClass>
    <cusip>921908844</cusip>
    <value>494638</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2300</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2280</Sole>
      <Shared>0</Shared>
      <None>20</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD TAX-MANAGED FDS</nameOfIssuer>
    <titleOfClass>VAN FTSE DEV MKT</titleOfClass>
    <cusip>921943858</cusip>
    <value>2898847</value>
    <shrsOrPrnAmt>
      <sshPrnamt>45237</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>45237</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VANGUARD WORLD FD</nameOfIssuer>
    <titleOfClass>INF TECH ETF</titleOfClass>
    <cusip>92204A702</cusip>
    <value>233514</value>
    <shrsOrPrnAmt>
      <sshPrnamt>334</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>224</Sole>
      <Shared>0</Shared>
      <None>110</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VERICEL CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92346J108</cusip>
    <value>832077</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25865</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>25865</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VERIZON COMMUNICATIONS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92343V104</cusip>
    <value>166434887</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3315436</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2945045</Sole>
      <Shared>0</Shared>
      <None>370391</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VIASAT INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92552V100</cusip>
    <value>595400</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VISA INC</nameOfIssuer>
    <titleOfClass>COM CL A</titleOfClass>
    <cusip>92826C839</cusip>
    <value>254159034</value>
    <shrsOrPrnAmt>
      <sshPrnamt>840917</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>729165</Sole>
      <Shared>0</Shared>
      <None>111752</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WABTEC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>929740108</cusip>
    <value>1308779</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5237</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5236</Sole>
      <Shared>0</Shared>
      <None>1</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WALMART INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>931142103</cusip>
    <value>1951196</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15700</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13541</Sole>
      <Shared>0</Shared>
      <None>2159</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WASTE MGMT INC DEL</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>94106L109</cusip>
    <value>91511570</value>
    <shrsOrPrnAmt>
      <sshPrnamt>398240</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>371835</Sole>
      <Shared>0</Shared>
      <None>26405</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WATERS CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>941848103</cusip>
    <value>285590</value>
    <shrsOrPrnAmt>
      <sshPrnamt>958</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>931</Sole>
      <Shared>0</Shared>
      <None>27</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WEC ENERGY GROUP INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92939U106</cusip>
    <value>221200002</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1910685</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1694886</Sole>
      <Shared>0</Shared>
      <None>215799</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WELLS FARGO &amp; CO</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>949746101</cusip>
    <value>108737395</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1365876</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1083108</Sole>
      <Shared>0</Shared>
      <None>282768</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WEYERHAEUSER CO</nameOfIssuer>
    <titleOfClass>COM NEW</titleOfClass>
    <cusip>962166104</cusip>
    <value>882338</value>
    <shrsOrPrnAmt>
      <sshPrnamt>36117</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>26784</Sole>
      <Shared>0</Shared>
      <None>9333</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WINTRUST FINL CORP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>97650W108</cusip>
    <value>8022951</value>
    <shrsOrPrnAmt>
      <sshPrnamt>57744</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>56044</Sole>
      <Shared>0</Shared>
      <None>1700</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WOODWARD INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>980745103</cusip>
    <value>5010880</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WORKIVA INC</nameOfIssuer>
    <titleOfClass>COM CL A</titleOfClass>
    <cusip>98139A105</cusip>
    <value>42673613</value>
    <shrsOrPrnAmt>
      <sshPrnamt>715640</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>647490</Sole>
      <Shared>0</Shared>
      <None>68150</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>XCEL ENERGY INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>98389B100</cusip>
    <value>31955810</value>
    <shrsOrPrnAmt>
      <sshPrnamt>402263</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>349379</Sole>
      <Shared>0</Shared>
      <None>52884</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>XYLEM INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>98419M100</cusip>
    <value>1683755</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14090</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9785</Sole>
      <Shared>0</Shared>
      <None>4305</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ZIMMER BIOMET HOLDINGS INC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>98956P102</cusip>
    <value>727881</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8050</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2800</Sole>
      <Shared>0</Shared>
      <None>5250</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ZOETIS INC</nameOfIssuer>
    <titleOfClass>CL A</titleOfClass>
    <cusip>98978V103</cusip>
    <value>35831342</value>
    <shrsOrPrnAmt>
      <sshPrnamt>303116</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>267788</Sole>
      <Shared>0</Shared>
      <None>35328</None>
    </votingAuthority>
  </infoTable>
</informationTable>
