<?xml version="1.0" encoding="utf-8"?>
<informationTable xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <infoTable>
    <nameOfIssuer>3M Company</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>88579Y101</cusip>
    <value>7889351</value>
    <shrsOrPrnAmt>
      <sshPrnamt>50840</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>47372</Sole>
      <Shared>0</Shared>
      <None>3468</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AFLAC</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>001055102</cusip>
    <value>2235127</value>
    <shrsOrPrnAmt>
      <sshPrnamt>20010</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12564</Sole>
      <Shared>0</Shared>
      <None>7446</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>APi Group Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00187Y100</cusip>
    <value>3532205</value>
    <shrsOrPrnAmt>
      <sshPrnamt>102770</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>102770</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ASML Holding NV NY Registry Sh</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>N07059210</cusip>
    <value>2166585</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2238</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1975</Sole>
      <Shared>0</Shared>
      <None>263</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AT &amp; T</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00206R102</cusip>
    <value>1282315</value>
    <shrsOrPrnAmt>
      <sshPrnamt>45408</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>37824</Sole>
      <Shared>0</Shared>
      <None>7584</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Abbott Labs</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>002824100</cusip>
    <value>111278996</value>
    <shrsOrPrnAmt>
      <sshPrnamt>830812</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>715279</Sole>
      <Shared>0</Shared>
      <None>115533</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Abbvie Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00287Y109</cusip>
    <value>53521974</value>
    <shrsOrPrnAmt>
      <sshPrnamt>231156</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>213854</Sole>
      <Shared>0</Shared>
      <None>17302</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Accenture Plc Class A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G1151C101</cusip>
    <value>4923862</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19967</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18349</Sole>
      <Shared>0</Shared>
      <None>1618</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Adobe Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00724F101</cusip>
    <value>22923258</value>
    <shrsOrPrnAmt>
      <sshPrnamt>64984</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>61890</Sole>
      <Shared>0</Shared>
      <None>3094</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Advanced Micro Devices Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>007903107</cusip>
    <value>1193039</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7374</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5644</Sole>
      <Shared>0</Shared>
      <None>1730</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AeroVironment Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>008073108</cusip>
    <value>682367</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2167</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>2167</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Agco Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>001084102</cusip>
    <value>406331</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3795</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3795</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Agilent Technologies</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00846U101</cusip>
    <value>211392</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1647</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1647</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Agnico Eagle Mines</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>008474108</cusip>
    <value>184124492</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1092338</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1007997</Sole>
      <Shared>0</Shared>
      <None>84341</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Air Products &amp; Chemicals Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>009158106</cusip>
    <value>6817449</value>
    <shrsOrPrnAmt>
      <sshPrnamt>24998</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>23285</Sole>
      <Shared>0</Shared>
      <None>1713</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Airbnb Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>009066101</cusip>
    <value>816671</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6726</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6344</Sole>
      <Shared>0</Shared>
      <None>382</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alamos Gold Inc Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>011532108</cusip>
    <value>23931701</value>
    <shrsOrPrnAmt>
      <sshPrnamt>686509</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>669364</Sole>
      <Shared>0</Shared>
      <None>17145</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alaska Air</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>011659109</cusip>
    <value>715140</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14366</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2000</Sole>
      <Shared>0</Shared>
      <None>12366</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alcon Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>H01301128</cusip>
    <value>24918677</value>
    <shrsOrPrnAmt>
      <sshPrnamt>334434</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>246387</Sole>
      <Shared>0</Shared>
      <None>88047</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alibaba Group Holding-SP ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>01609W102</cusip>
    <value>1444496</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8082</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2720</Sole>
      <Shared>0</Shared>
      <None>5362</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Allegion PLC</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G0176J109</cusip>
    <value>223461</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1260</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1260</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Allstate</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>020002101</cusip>
    <value>641803</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2990</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2893</Sole>
      <Shared>0</Shared>
      <None>97</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alnylam Pharmaceuticals</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>02043Q107</cusip>
    <value>282720</value>
    <shrsOrPrnAmt>
      <sshPrnamt>620</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>620</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alphabet Inc. Class A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>02079K305</cusip>
    <value>256854032</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1056578</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>931054</Sole>
      <Shared>0</Shared>
      <None>125524</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alphabet Inc. Class C</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>02079K107</cusip>
    <value>48026678</value>
    <shrsOrPrnAmt>
      <sshPrnamt>197194</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>160087</Sole>
      <Shared>0</Shared>
      <None>37107</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Altria Group Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>02209S103</cusip>
    <value>2135021</value>
    <shrsOrPrnAmt>
      <sshPrnamt>32319</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>31567</Sole>
      <Shared>0</Shared>
      <None>752</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amazon.com</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>023135106</cusip>
    <value>196098406</value>
    <shrsOrPrnAmt>
      <sshPrnamt>893102</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>772126</Sole>
      <Shared>0</Shared>
      <None>120976</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amer Tower Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>03027X100</cusip>
    <value>1377396</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7162</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6565</Sole>
      <Shared>0</Shared>
      <None>597</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ameren Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>023608102</cusip>
    <value>249468</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2390</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2390</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>American Electric Power</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>025537101</cusip>
    <value>326812</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2905</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2905</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>American Express</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>025816109</cusip>
    <value>45285655</value>
    <shrsOrPrnAmt>
      <sshPrnamt>136337</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>127219</Sole>
      <Shared>0</Shared>
      <None>9118</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>American Water Works Company I</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>030420103</cusip>
    <value>1031676</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7412</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7212</Sole>
      <Shared>0</Shared>
      <None>200</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ameriprise Financial</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>03076C106</cusip>
    <value>2395335</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4876</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4876</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amgen</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>031162100</cusip>
    <value>4067659</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14414</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8984</Sole>
      <Shared>0</Shared>
      <None>5430</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amphenol</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>032095101</cusip>
    <value>126021021</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1018352</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>848791</Sole>
      <Shared>0</Shared>
      <None>169561</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Analog Devices Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>032654105</cusip>
    <value>83832358</value>
    <shrsOrPrnAmt>
      <sshPrnamt>341198</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>287960</Sole>
      <Shared>0</Shared>
      <None>53238</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Aon Plc Class A Ordinary Share</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G0403H108</cusip>
    <value>441803</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1239</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1239</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Apollo Global Management A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>03769M106</cusip>
    <value>379819</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2850</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2850</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Apple Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>037833100</cusip>
    <value>279138131</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1096250</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>998329</Sole>
      <Shared>0</Shared>
      <None>97921</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Applied Materials</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>038222105</cusip>
    <value>12969255</value>
    <shrsOrPrnAmt>
      <sshPrnamt>63345</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>19336</Sole>
      <Shared>0</Shared>
      <None>44009</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Aptiv Plc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G3265R107</cusip>
    <value>683035</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7922</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1133</Sole>
      <Shared>0</Shared>
      <None>6789</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Archer-Daniels-Midland</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>039483102</cusip>
    <value>382933</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6410</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3797</Sole>
      <Shared>0</Shared>
      <None>2613</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ares Capital Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>04010L103</cusip>
    <value>886679</value>
    <shrsOrPrnAmt>
      <sshPrnamt>43443</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>43443</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Arista Networks Inc.</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>040413205</cusip>
    <value>296666</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2036</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2036</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Arthur J Gallagher</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>363576109</cusip>
    <value>4247155</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13712</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13712</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Artisan Partners Asset Ma -A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>04316A108</cusip>
    <value>554565</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12778</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>12778</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Astrazeneca PLC Sponsored ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>046353108</cusip>
    <value>527987</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6882</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6612</Sole>
      <Shared>0</Shared>
      <None>270</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>AutoZone Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>053332102</cusip>
    <value>24617397</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5738</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3108</Sole>
      <Shared>0</Shared>
      <None>2630</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Autodesk</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>052769106</cusip>
    <value>486670</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1532</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1532</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Automatic Data Processing</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>053015103</cusip>
    <value>41747000</value>
    <shrsOrPrnAmt>
      <sshPrnamt>142238</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>97859</Sole>
      <Shared>0</Shared>
      <None>44379</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Axogen Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>05463X106</cusip>
    <value>1109398</value>
    <shrsOrPrnAmt>
      <sshPrnamt>62186</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>62186</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ball Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>058498106</cusip>
    <value>1511339</value>
    <shrsOrPrnAmt>
      <sshPrnamt>29975</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>29345</Sole>
      <Shared>0</Shared>
      <None>630</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bally's Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>05875B304</cusip>
    <value>117660</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10600</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>10600</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bank of America</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>060505104</cusip>
    <value>15042189</value>
    <shrsOrPrnAmt>
      <sshPrnamt>291572</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>258444</Sole>
      <Shared>0</Shared>
      <None>33128</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bank of New York Mellon</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>064058100</cusip>
    <value>10548640</value>
    <shrsOrPrnAmt>
      <sshPrnamt>96812</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>21379</Sole>
      <Shared>0</Shared>
      <None>75433</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Barrick Mining Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>06849F108</cusip>
    <value>1343242</value>
    <shrsOrPrnAmt>
      <sshPrnamt>40990</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>40990</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Baxter International</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>071813109</cusip>
    <value>274378</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12050</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12050</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Becton Dickinson</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>075887109</cusip>
    <value>1830710</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9781</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8815</Sole>
      <Shared>0</Shared>
      <None>966</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Berkshire Hathaway Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>084670108</cusip>
    <value>12821400</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7</Sole>
      <Shared>0</Shared>
      <None>10</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Berkshire Hathaway Cl B</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>084670702</cusip>
    <value>140747956</value>
    <shrsOrPrnAmt>
      <sshPrnamt>279962</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>232818</Sole>
      <Shared>0</Shared>
      <None>47144</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bio-Techne Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>09073M104</cusip>
    <value>211394</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3800</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3700</Sole>
      <Shared>0</Shared>
      <None>100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>BlackRock Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>09290D101</cusip>
    <value>2990457</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2565</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2040</Sole>
      <Shared>0</Shared>
      <None>525</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Blackstone Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>09260D107</cusip>
    <value>10167172</value>
    <shrsOrPrnAmt>
      <sshPrnamt>59509</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>54297</Sole>
      <Shared>0</Shared>
      <None>5212</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Blackstone Mortgage Tru-Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>09257W100</cusip>
    <value>901169</value>
    <shrsOrPrnAmt>
      <sshPrnamt>48950</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>48950</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Block Inc Class A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>852234103</cusip>
    <value>327600</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4533</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4112</Sole>
      <Shared>0</Shared>
      <None>421</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Boeing</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>097023105</cusip>
    <value>39860262</value>
    <shrsOrPrnAmt>
      <sshPrnamt>184684</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>177449</Sole>
      <Shared>0</Shared>
      <None>7235</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Booking Holdings Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>09857L108</cusip>
    <value>2192104</value>
    <shrsOrPrnAmt>
      <sshPrnamt>406</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>337</Sole>
      <Shared>0</Shared>
      <None>69</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Boston Scientific</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>101137107</cusip>
    <value>44310742</value>
    <shrsOrPrnAmt>
      <sshPrnamt>453864</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>437190</Sole>
      <Shared>0</Shared>
      <None>16674</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bristol-Myers Squibb</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>110122108</cusip>
    <value>1738613</value>
    <shrsOrPrnAmt>
      <sshPrnamt>38550</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>36895</Sole>
      <Shared>0</Shared>
      <None>1655</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Broadcom Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>11135F101</cusip>
    <value>43724545</value>
    <shrsOrPrnAmt>
      <sshPrnamt>132535</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>116267</Sole>
      <Shared>0</Shared>
      <None>16268</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Broadridge Financial Solutions</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>11133T103</cusip>
    <value>875275</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3675</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2922</Sole>
      <Shared>0</Shared>
      <None>753</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Broadstone Net Lease Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>11135E203</cusip>
    <value>280470</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15695</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15695</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Brookfield Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>11271J107</cusip>
    <value>296266</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4320</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4320</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bunge Global SA</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>H11356104</cusip>
    <value>687537</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8462</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>8462</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>C3.AI Inc Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>12468P104</cusip>
    <value>206554</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11912</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>11777</Sole>
      <Shared>0</Shared>
      <None>135</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CIGNA Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>125523100</cusip>
    <value>5729214</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19876</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>19523</Sole>
      <Shared>0</Shared>
      <None>353</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CME Group Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>12572Q105</cusip>
    <value>4665520</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17268</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17268</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CMS Energy</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>125896100</cusip>
    <value>216117</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2950</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2950</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CROCS Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>227046109</cusip>
    <value>330524</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3956</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>3956</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CSG Systems Intl Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>126349109</cusip>
    <value>679724</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10558</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>10558</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CSX</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>126408103</cusip>
    <value>1959575</value>
    <shrsOrPrnAmt>
      <sshPrnamt>55184</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>55184</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CVS Health Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>126650100</cusip>
    <value>2242421</value>
    <shrsOrPrnAmt>
      <sshPrnamt>29744</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>21976</Sole>
      <Shared>0</Shared>
      <None>7768</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cadence Design Systems</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>127387108</cusip>
    <value>41000472</value>
    <shrsOrPrnAmt>
      <sshPrnamt>116724</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>112059</Sole>
      <Shared>0</Shared>
      <None>4665</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cameco Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>13321L108</cusip>
    <value>4539845</value>
    <shrsOrPrnAmt>
      <sshPrnamt>54136</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>53953</Sole>
      <Shared>0</Shared>
      <None>183</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Canadian National Railway</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>136375102</cusip>
    <value>8246918</value>
    <shrsOrPrnAmt>
      <sshPrnamt>87454</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>81528</Sole>
      <Shared>0</Shared>
      <None>5926</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Canadian Pacific Kansas City L</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>13646K108</cusip>
    <value>296500</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3980</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3980</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Carrier Global Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>14448C104</cusip>
    <value>16593921</value>
    <shrsOrPrnAmt>
      <sshPrnamt>277955</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>266719</Sole>
      <Shared>0</Shared>
      <None>11236</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Caseys General Stores</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>147528103</cusip>
    <value>664816</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1176</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>760</Sole>
      <Shared>0</Shared>
      <None>416</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Caterpillar</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>149123101</cusip>
    <value>51404322</value>
    <shrsOrPrnAmt>
      <sshPrnamt>107732</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>93198</Sole>
      <Shared>0</Shared>
      <None>14534</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Celestica Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>15101Q207</cusip>
    <value>320294</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>Cencora Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>03073E105</cusip>
    <value>401744</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1285</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1285</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Charter Communications</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>16119P108</cusip>
    <value>266027</value>
    <shrsOrPrnAmt>
      <sshPrnamt>967</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>937</Sole>
      <Shared>0</Shared>
      <None>30</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Check Point Software</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>M22465104</cusip>
    <value>954062</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4611</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3411</Sole>
      <Shared>0</Shared>
      <None>1200</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Chevron Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>166764100</cusip>
    <value>46466042</value>
    <shrsOrPrnAmt>
      <sshPrnamt>299221</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>233026</Sole>
      <Shared>0</Shared>
      <None>66195</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Chewy Inc. Class A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>16679l109</cusip>
    <value>1083251</value>
    <shrsOrPrnAmt>
      <sshPrnamt>26780</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>26760</Sole>
      <Shared>0</Shared>
      <None>20</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Chubb Ltd</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>H1467J104</cusip>
    <value>26090881</value>
    <shrsOrPrnAmt>
      <sshPrnamt>92439</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>57466</Sole>
      <Shared>0</Shared>
      <None>34973</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Church &amp; Dwight</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>171340102</cusip>
    <value>1242856</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14183</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13533</Sole>
      <Shared>0</Shared>
      <None>650</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cincinnati Financial Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>172062101</cusip>
    <value>278730</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1763</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1666</Sole>
      <Shared>0</Shared>
      <None>97</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cisco Systems</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>17275R102</cusip>
    <value>38846969</value>
    <shrsOrPrnAmt>
      <sshPrnamt>567772</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>501064</Sole>
      <Shared>0</Shared>
      <None>66708</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Citigroup</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>172967424</cusip>
    <value>778907</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7674</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3719</Sole>
      <Shared>0</Shared>
      <None>3955</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Clean Harbors</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>184496107</cusip>
    <value>359709</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1549</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1549</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ClearPoint Neuro</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>18507C103</cusip>
    <value>624719</value>
    <shrsOrPrnAmt>
      <sshPrnamt>28670</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>28670</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Clorox</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>189054109</cusip>
    <value>241545</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1959</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1959</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Coca Cola</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>191216100</cusip>
    <value>20808698</value>
    <shrsOrPrnAmt>
      <sshPrnamt>313762</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>301934</Sole>
      <Shared>0</Shared>
      <None>11828</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cognex</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>192422103</cusip>
    <value>13068008</value>
    <shrsOrPrnAmt>
      <sshPrnamt>288477</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>283487</Sole>
      <Shared>0</Shared>
      <None>4990</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cognition Therapeutics Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>19243B102</cusip>
    <value>15825</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11722</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>11722</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cognizant Technology Solutions</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>192446102</cusip>
    <value>448296</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6684</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4421</Sole>
      <Shared>0</Shared>
      <None>2263</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Colgate-Palmolive</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>194162103</cusip>
    <value>4183900</value>
    <shrsOrPrnAmt>
      <sshPrnamt>52338</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>49543</Sole>
      <Shared>0</Shared>
      <None>2795</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Comcast Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>20030N101</cusip>
    <value>2381534</value>
    <shrsOrPrnAmt>
      <sshPrnamt>75797</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>70492</Sole>
      <Shared>0</Shared>
      <None>5305</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Concentrix Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>20602D101</cusip>
    <value>545954</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11830</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>11830</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Conoco Phillips</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>20825C104</cusip>
    <value>59803491</value>
    <shrsOrPrnAmt>
      <sshPrnamt>632239</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>594327</Sole>
      <Shared>0</Shared>
      <None>37912</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Consolidated Edison</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>209115104</cusip>
    <value>212864</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2118</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1973</Sole>
      <Shared>0</Shared>
      <None>145</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Copart Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>217204106</cusip>
    <value>235013</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5226</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5126</Sole>
      <Shared>0</Shared>
      <None>100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Corning</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>219350105</cusip>
    <value>2525046</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30782</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>22840</Sole>
      <Shared>0</Shared>
      <None>7942</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Corteva Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>22052L104</cusip>
    <value>612499</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9057</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8570</Sole>
      <Shared>0</Shared>
      <None>487</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Costco</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>22160K105</cusip>
    <value>118518214</value>
    <shrsOrPrnAmt>
      <sshPrnamt>128041</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>112962</Sole>
      <Shared>0</Shared>
      <None>15079</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Coterra Energy Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>127097103</cusip>
    <value>250193</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10579</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10579</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Crane Co</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>224408104</cusip>
    <value>2341524</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12716</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12716</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CrowdStrike Holdings</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>22788C105</cusip>
    <value>19965134</value>
    <shrsOrPrnAmt>
      <sshPrnamt>40714</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17700</Sole>
      <Shared>0</Shared>
      <None>23014</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Crown Castle Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>22822V101</cusip>
    <value>4092127</value>
    <shrsOrPrnAmt>
      <sshPrnamt>42410</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>39935</Sole>
      <Shared>0</Shared>
      <None>2475</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cullen/Frost Bankers</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>229899109</cusip>
    <value>624342</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4925</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3825</Sole>
      <Shared>0</Shared>
      <None>1100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cummins Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>231021106</cusip>
    <value>1235855</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2926</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2926</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>D R Horton Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>23331A109</cusip>
    <value>10052791</value>
    <shrsOrPrnAmt>
      <sshPrnamt>59319</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>59044</Sole>
      <Shared>0</Shared>
      <None>275</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Danaher</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>235851102</cusip>
    <value>104514423</value>
    <shrsOrPrnAmt>
      <sshPrnamt>527158</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>466160</Sole>
      <Shared>0</Shared>
      <None>60998</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Deere</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>244199105</cusip>
    <value>80161201</value>
    <shrsOrPrnAmt>
      <sshPrnamt>175308</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>154965</Sole>
      <Shared>0</Shared>
      <None>20343</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dell Technologies - C</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>24703L202</cusip>
    <value>389017</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2744</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2744</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Delta Airlines</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>247361702</cusip>
    <value>313600</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5526</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5410</Sole>
      <Shared>0</Shared>
      <None>116</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dentsply Sirona Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>24906P109</cusip>
    <value>533818</value>
    <shrsOrPrnAmt>
      <sshPrnamt>42066</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>854</Sole>
      <Shared>0</Shared>
      <None>41212</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Diageo Plc ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>25243Q205</cusip>
    <value>203943</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2137</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1995</Sole>
      <Shared>0</Shared>
      <None>142</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dominion Energy</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>25746U109</cusip>
    <value>1865661</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30500</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>26543</Sole>
      <Shared>0</Shared>
      <None>3957</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dover Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>260003108</cusip>
    <value>391717</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2348</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2259</Sole>
      <Shared>0</Shared>
      <None>89</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>DuPont De Nemours Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>26614N102</cusip>
    <value>1073420</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13779</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13566</Sole>
      <Shared>0</Shared>
      <None>213</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Duke Energy</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>26441C204</cusip>
    <value>2021991</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16339</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15852</Sole>
      <Shared>0</Shared>
      <None>487</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EOG Resources</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>26875P101</cusip>
    <value>2153265</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19205</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18947</Sole>
      <Shared>0</Shared>
      <None>258</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EQT Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>26884L109</cusip>
    <value>5760653</value>
    <shrsOrPrnAmt>
      <sshPrnamt>105836</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>105351</Sole>
      <Shared>0</Shared>
      <None>485</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>East West Bancorp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>27579R104</cusip>
    <value>967987</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9093</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2982</Sole>
      <Shared>0</Shared>
      <None>6111</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>EastGroup Properties Inc REIT</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>277276101</cusip>
    <value>246273</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1455</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1455</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Eastman Chemical</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>277432100</cusip>
    <value>330634</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5244</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5244</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Eaton Corp PLC</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G29183103</cusip>
    <value>14671866</value>
    <shrsOrPrnAmt>
      <sshPrnamt>39203</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>32595</Sole>
      <Shared>0</Shared>
      <None>6608</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ebay</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>278642103</cusip>
    <value>701770</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7716</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7716</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ecolab</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>278865100</cusip>
    <value>16631225</value>
    <shrsOrPrnAmt>
      <sshPrnamt>60729</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>59213</Sole>
      <Shared>0</Shared>
      <None>1516</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Edwards Lifesciences</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>28176E108</cusip>
    <value>1104334</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14200</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14200</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Electronic Arts</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>285512109</cusip>
    <value>392710</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1947</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1846</Sole>
      <Shared>0</Shared>
      <None>101</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Elevance Health Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>036752103</cusip>
    <value>200981</value>
    <shrsOrPrnAmt>
      <sshPrnamt>622</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>622</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Eli Lilly</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>532457108</cusip>
    <value>19626327</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25723</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>25090</Sole>
      <Shared>0</Shared>
      <None>633</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Emcorp Group Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>29084Q100</cusip>
    <value>722938</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1113</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>895</Sole>
      <Shared>0</Shared>
      <None>218</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Emerson Electric</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>291011104</cusip>
    <value>4237702</value>
    <shrsOrPrnAmt>
      <sshPrnamt>32304</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>31154</Sole>
      <Shared>0</Shared>
      <None>1150</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Enbridge Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>29250N105</cusip>
    <value>24774058</value>
    <shrsOrPrnAmt>
      <sshPrnamt>490883</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>448788</Sole>
      <Shared>0</Shared>
      <None>42095</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Energy Transfer LP</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>29273V100</cusip>
    <value>238267</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13885</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13885</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Enterprise Products LP</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>293792107</cusip>
    <value>6681148</value>
    <shrsOrPrnAmt>
      <sshPrnamt>213660</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>208621</Sole>
      <Shared>0</Shared>
      <None>5039</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Epam Systems Inc.</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>29414B104</cusip>
    <value>393863</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2612</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2612</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Equifax</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>294429105</cusip>
    <value>1383466</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5393</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5393</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Equinix Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>29444U700</cusip>
    <value>668104</value>
    <shrsOrPrnAmt>
      <sshPrnamt>853</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>526</Sole>
      <Shared>0</Shared>
      <None>327</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Eversource Energy</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>30040W108</cusip>
    <value>1033024</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14521</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8636</Sole>
      <Shared>0</Shared>
      <None>5885</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Exxon Mobil</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>30231G102</cusip>
    <value>82665362</value>
    <shrsOrPrnAmt>
      <sshPrnamt>733174</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>636621</Sole>
      <Shared>0</Shared>
      <None>96552</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FTAI Aviation Ltd</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G3730V105</cusip>
    <value>254295</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1524</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1524</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fair Isaac Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>303250104</cusip>
    <value>359167</value>
    <shrsOrPrnAmt>
      <sshPrnamt>240</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>240</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fastenal Company</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>311900104</cusip>
    <value>6336556</value>
    <shrsOrPrnAmt>
      <sshPrnamt>129212</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>99400</Sole>
      <Shared>0</Shared>
      <None>29812</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FedEx Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>31428X106</cusip>
    <value>1860194</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7889</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6312</Sole>
      <Shared>0</Shared>
      <None>1577</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Federal Agricultural Mortgage</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>313148306</cusip>
    <value>210983</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1256</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>1256</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ferrari NV</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>N3167Y103</cusip>
    <value>242610</value>
    <shrsOrPrnAmt>
      <sshPrnamt>500</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>400</Sole>
      <Shared>0</Shared>
      <None>100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>First Solar Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>336433107</cusip>
    <value>2476772</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11231</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10897</Sole>
      <Shared>0</Shared>
      <None>334</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FirstService Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>33767E202</cusip>
    <value>858348</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4506</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4506</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fiserv Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>337738108</cusip>
    <value>53619927</value>
    <shrsOrPrnAmt>
      <sshPrnamt>415884</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>350385</Sole>
      <Shared>0</Shared>
      <None>65499</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Five9 Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>338307101</cusip>
    <value>579711</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23955</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>23955</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ford Motor</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>345370860</cusip>
    <value>271731</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22720</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>22020</Sole>
      <Shared>0</Shared>
      <None>700</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fortive Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>34959J108</cusip>
    <value>1917427</value>
    <shrsOrPrnAmt>
      <sshPrnamt>39139</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>33323</Sole>
      <Shared>0</Shared>
      <None>5816</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Franco Nevada Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>351858105</cusip>
    <value>14011479</value>
    <shrsOrPrnAmt>
      <sshPrnamt>62857</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>58635</Sole>
      <Shared>0</Shared>
      <None>4222</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Freeport McMoRan</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>35671D857</cusip>
    <value>1155264</value>
    <shrsOrPrnAmt>
      <sshPrnamt>29456</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>27556</Sole>
      <Shared>0</Shared>
      <None>1900</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GATX Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>361448103</cusip>
    <value>240350</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1375</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>875</Sole>
      <Shared>0</Shared>
      <None>500</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GE Aerospace</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>369604301</cusip>
    <value>87850078</value>
    <shrsOrPrnAmt>
      <sshPrnamt>292035</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>240433</Sole>
      <Shared>0</Shared>
      <None>51602</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GE Healthcare Technologies Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>36266G107</cusip>
    <value>7815247</value>
    <shrsOrPrnAmt>
      <sshPrnamt>104065</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>94765</Sole>
      <Shared>0</Shared>
      <None>9300</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GE Vernova Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>36828A101</cusip>
    <value>3212237</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5224</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4824</Sole>
      <Shared>0</Shared>
      <None>400</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>GSK Plc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>37733W204</cusip>
    <value>553319</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12820</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3515</Sole>
      <Shared>0</Shared>
      <None>9305</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Gen Digital Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>668771108</cusip>
    <value>320608</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11293</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>11293</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>General Dynamics</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>369550108</cusip>
    <value>2872584</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8424</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6826</Sole>
      <Shared>0</Shared>
      <None>1598</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>General Mills</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>370334104</cusip>
    <value>1147358</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22756</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>22756</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Genuine Parts</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>372460105</cusip>
    <value>397782</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2870</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2870</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Gilead Sciences</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>375558103</cusip>
    <value>4077050</value>
    <shrsOrPrnAmt>
      <sshPrnamt>36730</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>30010</Sole>
      <Shared>0</Shared>
      <None>6720</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Global Payments Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>37940X102</cusip>
    <value>481282</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5793</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>631</Sole>
      <Shared>0</Shared>
      <None>5162</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Goldman Sachs</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>38141G104</cusip>
    <value>7711309</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9683</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8337</Sole>
      <Shared>0</Shared>
      <None>1346</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Graco Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>384109104</cusip>
    <value>466260</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5488</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5488</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Grainger W W</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>384802104</cusip>
    <value>1310151</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1375</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1001</Sole>
      <Shared>0</Shared>
      <None>374</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HCA Holdings Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>40412C101</cusip>
    <value>748833</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1757</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1757</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>HP Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>40434L105</cusip>
    <value>491311</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18043</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16718</Sole>
      <Shared>0</Shared>
      <None>1325</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Hasbro Inc.</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>418056107</cusip>
    <value>1046502</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13797</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>13797</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Heico Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>422806109</cusip>
    <value>365432</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1132</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1132</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Henry Schein</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>806407102</cusip>
    <value>620958</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9356</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7956</Sole>
      <Shared>0</Shared>
      <None>1400</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Hershey Co</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>427866108</cusip>
    <value>1640803</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8772</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4087</Sole>
      <Shared>0</Shared>
      <None>4685</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Hewlett Packard Enterprise Co</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>42824C109</cusip>
    <value>398633</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16231</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16231</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Home Depot</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>437076102</cusip>
    <value>83516657</value>
    <shrsOrPrnAmt>
      <sshPrnamt>206117</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>189034</Sole>
      <Shared>0</Shared>
      <None>17083</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Honeywell International</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>438516106</cusip>
    <value>20326973</value>
    <shrsOrPrnAmt>
      <sshPrnamt>96565</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>92269</Sole>
      <Shared>0</Shared>
      <None>4296</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Howmet Aerospace</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>443201108</cusip>
    <value>10079158</value>
    <shrsOrPrnAmt>
      <sshPrnamt>51364</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>51320</Sole>
      <Shared>0</Shared>
      <None>44</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Hubbell Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>443510607</cusip>
    <value>20109605</value>
    <shrsOrPrnAmt>
      <sshPrnamt>46733</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>46053</Sole>
      <Shared>0</Shared>
      <None>680</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Hunt JB Transport Services</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>445658107</cusip>
    <value>324289</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2417</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1805</Sole>
      <Shared>0</Shared>
      <None>612</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>IDEXX Labs</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>45168D104</cusip>
    <value>67153089</value>
    <shrsOrPrnAmt>
      <sshPrnamt>105109</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>89259</Sole>
      <Shared>0</Shared>
      <None>15850</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>IQVIA Holdings</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46266C105</cusip>
    <value>15782117</value>
    <shrsOrPrnAmt>
      <sshPrnamt>83090</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>78188</Sole>
      <Shared>0</Shared>
      <None>4902</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Illinois Tool Works</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>452308109</cusip>
    <value>2169121</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8318</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7564</Sole>
      <Shared>0</Shared>
      <None>754</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Illumina Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>452327109</cusip>
    <value>233531</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2459</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1098</Sole>
      <Shared>0</Shared>
      <None>1361</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ingersoll Rand Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>45687V106</cusip>
    <value>373525</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4521</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4521</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ingredion Incorporated</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>457187102</cusip>
    <value>332872</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2726</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>2726</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Intel</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>458140100</cusip>
    <value>1085134</value>
    <shrsOrPrnAmt>
      <sshPrnamt>32344</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>29360</Sole>
      <Shared>0</Shared>
      <None>2984</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>IntercontinentalExchange Group</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>45866F104</cusip>
    <value>61599652</value>
    <shrsOrPrnAmt>
      <sshPrnamt>365620</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>309108</Sole>
      <Shared>0</Shared>
      <None>56512</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>International Business Machine</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>459200101</cusip>
    <value>24961585</value>
    <shrsOrPrnAmt>
      <sshPrnamt>88466</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>75060</Sole>
      <Shared>0</Shared>
      <None>13406</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>International Paper</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>460146103</cusip>
    <value>1100237</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23712</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12608</Sole>
      <Shared>0</Shared>
      <None>11104</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Intuit</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>461202103</cusip>
    <value>71484187</value>
    <shrsOrPrnAmt>
      <sshPrnamt>104676</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>90760</Sole>
      <Shared>0</Shared>
      <None>13916</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Intuitive Surgical</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46120E602</cusip>
    <value>21624018</value>
    <shrsOrPrnAmt>
      <sshPrnamt>48351</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>34027</Sole>
      <Shared>0</Shared>
      <None>14324</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>J P Morgan Chase</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46625H100</cusip>
    <value>311602163</value>
    <shrsOrPrnAmt>
      <sshPrnamt>987865</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>851800</Sole>
      <Shared>0</Shared>
      <None>136065</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JFrog Ltd</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>M6191J100</cusip>
    <value>1615420</value>
    <shrsOrPrnAmt>
      <sshPrnamt>34131</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>34131</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Jacobs Solutions Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46982L108</cusip>
    <value>700865</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4677</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3345</Sole>
      <Shared>0</Shared>
      <None>1332</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Johnson &amp; Johnson</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>478160104</cusip>
    <value>63322074</value>
    <shrsOrPrnAmt>
      <sshPrnamt>341506</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>294812</Sole>
      <Shared>0</Shared>
      <None>46694</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Johnson Controls</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G51502105</cusip>
    <value>3136613</value>
    <shrsOrPrnAmt>
      <sshPrnamt>28528</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>27228</Sole>
      <Shared>0</Shared>
      <None>1300</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>KKR &amp; Co Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>48251W104</cusip>
    <value>1896620</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14595</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14595</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kellanova</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>487836108</cusip>
    <value>233675</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2849</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2849</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kenvue Inc.</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>49177J102</cusip>
    <value>3996412</value>
    <shrsOrPrnAmt>
      <sshPrnamt>246236</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>242406</Sole>
      <Shared>0</Shared>
      <None>3830</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>KeyCorp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>493267108</cusip>
    <value>825724</value>
    <shrsOrPrnAmt>
      <sshPrnamt>44180</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>44180</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Keysight Technologies Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>49338L103</cusip>
    <value>3069321</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17547</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17447</Sole>
      <Shared>0</Shared>
      <None>100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kimberly-Clark</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>494368103</cusip>
    <value>2449461</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19700</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18275</Sole>
      <Shared>0</Shared>
      <None>1425</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kinder Morgan Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>49456B101</cusip>
    <value>10441238</value>
    <shrsOrPrnAmt>
      <sshPrnamt>368818</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>351822</Sole>
      <Shared>0</Shared>
      <None>16996</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kla Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>482480100</cusip>
    <value>503706</value>
    <shrsOrPrnAmt>
      <sshPrnamt>467</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>156</Sole>
      <Shared>0</Shared>
      <None>311</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kulicke and Soffa Industries</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>501242101</cusip>
    <value>764642</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18815</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>18815</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>L3Harris Technologies Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>502431109</cusip>
    <value>1668760</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5464</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4587</Sole>
      <Shared>0</Shared>
      <None>877</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>LAM Research Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>512807306</cusip>
    <value>465972</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3480</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3180</Sole>
      <Shared>0</Shared>
      <None>300</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Labcorp Holdings Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>504922105</cusip>
    <value>2230169</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7769</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7769</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Lattice Semiconductor</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>518415104</cusip>
    <value>1803159</value>
    <shrsOrPrnAmt>
      <sshPrnamt>24593</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>24593</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Leidos Holdings Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>525327102</cusip>
    <value>723150</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3827</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3677</Sole>
      <Shared>0</Shared>
      <None>150</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Liberty Media Corp Series C Fo</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>531229755</cusip>
    <value>85828236</value>
    <shrsOrPrnAmt>
      <sshPrnamt>821716</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>748511</Sole>
      <Shared>0</Shared>
      <None>73205</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Lincoln Electric</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>533900106</cusip>
    <value>9506469</value>
    <shrsOrPrnAmt>
      <sshPrnamt>40311</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18237</Sole>
      <Shared>0</Shared>
      <None>22074</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Lincoln National</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>534187109</cusip>
    <value>322640</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Linde Plc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G54950103</cusip>
    <value>19782522</value>
    <shrsOrPrnAmt>
      <sshPrnamt>41647</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>25477</Sole>
      <Shared>0</Shared>
      <None>16170</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Live Nation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>538034109</cusip>
    <value>245263</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1501</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>1501</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Lockheed Martin</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>539830109</cusip>
    <value>9238560</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18506</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17310</Sole>
      <Shared>0</Shared>
      <None>1196</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Loews Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>540424108</cusip>
    <value>258404</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2574</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>2574</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Lowes</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>548661107</cusip>
    <value>29205893</value>
    <shrsOrPrnAmt>
      <sshPrnamt>116215</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>103489</Sole>
      <Shared>0</Shared>
      <None>12726</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>M&amp;T Bank</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>55261F104</cusip>
    <value>2102400</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10639</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10387</Sole>
      <Shared>0</Shared>
      <None>252</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MSCI Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>55354G100</cusip>
    <value>571949</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1008</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>914</Sole>
      <Shared>0</Shared>
      <None>94</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Manulife Financial</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>56501R106</cusip>
    <value>338071</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10853</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>950</Sole>
      <Shared>0</Shared>
      <None>9903</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Marathon Petroleum Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>56585A102</cusip>
    <value>1138302</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5906</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5906</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Marriott International</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>571903202</cusip>
    <value>1285271</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4935</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4935</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Marsh &amp; McLennan</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>571748102</cusip>
    <value>108690091</value>
    <shrsOrPrnAmt>
      <sshPrnamt>539325</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>447117</Sole>
      <Shared>0</Shared>
      <None>92208</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Mastercard Inc Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>57636Q104</cusip>
    <value>78234768</value>
    <shrsOrPrnAmt>
      <sshPrnamt>137541</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>126171</Sole>
      <Shared>0</Shared>
      <None>11370</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>McCormick</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>579780206</cusip>
    <value>13372260</value>
    <shrsOrPrnAmt>
      <sshPrnamt>199854</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>188650</Sole>
      <Shared>0</Shared>
      <None>11204</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>McDonalds</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>580135101</cusip>
    <value>51724331</value>
    <shrsOrPrnAmt>
      <sshPrnamt>170207</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>138153</Sole>
      <Shared>0</Shared>
      <None>32054</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>McKesson</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>58155Q103</cusip>
    <value>265754</value>
    <shrsOrPrnAmt>
      <sshPrnamt>344</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>344</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Medtronic PLC</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G5960L103</cusip>
    <value>2536622</value>
    <shrsOrPrnAmt>
      <sshPrnamt>26634</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13850</Sole>
      <Shared>0</Shared>
      <None>12784</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Merck</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>58933Y105</cusip>
    <value>24367813</value>
    <shrsOrPrnAmt>
      <sshPrnamt>290335</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>265706</Sole>
      <Shared>0</Shared>
      <None>24629</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Meta Platforms Inc Class A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>30303M102</cusip>
    <value>32402508</value>
    <shrsOrPrnAmt>
      <sshPrnamt>44122</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>41605</Sole>
      <Shared>0</Shared>
      <None>2517</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Metlife Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>59156R108</cusip>
    <value>253617</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3079</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3079</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Mettler-Toledo International</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>592688105</cusip>
    <value>2005915</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1634</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1609</Sole>
      <Shared>0</Shared>
      <None>25</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Microchip Technology</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>595017104</cusip>
    <value>422054</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6572</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6148</Sole>
      <Shared>0</Shared>
      <None>424</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Micron Technology</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>595112103</cusip>
    <value>362274</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2165</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1200</Sole>
      <Shared>0</Shared>
      <None>965</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Microsoft</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>594918104</cusip>
    <value>395341378</value>
    <shrsOrPrnAmt>
      <sshPrnamt>763281</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>685482</Sole>
      <Shared>0</Shared>
      <None>77799</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Molson Coors Brewing Company</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>60871R209</cusip>
    <value>516257</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11409</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>100</Sole>
      <Shared>0</Shared>
      <None>11309</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Mondelez International</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>609207105</cusip>
    <value>17379948</value>
    <shrsOrPrnAmt>
      <sshPrnamt>278213</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>252199</Sole>
      <Shared>0</Shared>
      <None>26014</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Moody's Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>615369105</cusip>
    <value>407390</value>
    <shrsOrPrnAmt>
      <sshPrnamt>855</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>855</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Morgan Stanley</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>617446448</cusip>
    <value>2768129</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17414</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17414</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Morningstar Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>617700109</cusip>
    <value>700902</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3021</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3021</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Mosaic Company</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>61945C103</cusip>
    <value>3480485</value>
    <shrsOrPrnAmt>
      <sshPrnamt>100360</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>86866</Sole>
      <Shared>0</Shared>
      <None>13494</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Motorola Solutions Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>620076307</cusip>
    <value>271630</value>
    <shrsOrPrnAmt>
      <sshPrnamt>594</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>555</Sole>
      <Shared>0</Shared>
      <None>39</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Mplx Lp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>55336V100</cusip>
    <value>670579</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13425</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13425</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>N B T Bankcorp Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>628778102</cusip>
    <value>345780</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8267</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9027</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NRG Energy Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>629377508</cusip>
    <value>666586</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4116</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>19</Sole>
      <Shared>0</Shared>
      <None>4097</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nasdaq Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>631103108</cusip>
    <value>626668</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7085</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3396</Sole>
      <Shared>0</Shared>
      <None>3689</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Netflix</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>64110L106</cusip>
    <value>2692774</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2246</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1695</Sole>
      <Shared>0</Shared>
      <None>551</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>NextEra Energy</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>65339F101</cusip>
    <value>7739596</value>
    <shrsOrPrnAmt>
      <sshPrnamt>102525</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>90037</Sole>
      <Shared>0</Shared>
      <None>12488</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nextracker Inc Class A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>65290E101</cusip>
    <value>683150</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9233</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>9233</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nike Inc Class B</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>654106103</cusip>
    <value>1619828</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23230</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17559</Sole>
      <Shared>0</Shared>
      <None>5671</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nisource</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>65473P105</cusip>
    <value>9153620</value>
    <shrsOrPrnAmt>
      <sshPrnamt>211400</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>211400</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nordson Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>655663102</cusip>
    <value>793417</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3496</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3496</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Norfolk Southern</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>655844108</cusip>
    <value>5991978</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19946</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>19855</Sole>
      <Shared>0</Shared>
      <None>91</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Northern Trust Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>665859104</cusip>
    <value>621179</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4615</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4615</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Northrop Grumman</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>666807102</cusip>
    <value>56831555</value>
    <shrsOrPrnAmt>
      <sshPrnamt>93270</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>88022</Sole>
      <Shared>0</Shared>
      <None>5248</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Novanta Inc.</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>67000B104</cusip>
    <value>6727276</value>
    <shrsOrPrnAmt>
      <sshPrnamt>67172</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>66846</Sole>
      <Shared>0</Shared>
      <None>326</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Novartis A G ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>66987V109</cusip>
    <value>2348331</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18312</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16424</Sole>
      <Shared>0</Shared>
      <None>1888</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Novo Nordisk A/S ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>670100205</cusip>
    <value>2664352</value>
    <shrsOrPrnAmt>
      <sshPrnamt>48015</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>47440</Sole>
      <Shared>0</Shared>
      <None>575</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nucor</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>670346105</cusip>
    <value>398841</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2945</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2945</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nvent Electric Plc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G6700G107</cusip>
    <value>224998</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2281</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2281</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nvidia Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>67066G104</cusip>
    <value>105764033</value>
    <shrsOrPrnAmt>
      <sshPrnamt>566856</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>465030</Sole>
      <Shared>0</Shared>
      <None>101826</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>O'Reilly Automotive</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>67103H107</cusip>
    <value>1638173</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15195</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15195</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Occidental Petroleum</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>674599105</cusip>
    <value>1066007</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22561</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>22541</Sole>
      <Shared>0</Shared>
      <None>20</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Okta Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>679295105</cusip>
    <value>875827</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9551</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9551</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Old Dominion Freight</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>679580100</cusip>
    <value>358285</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2545</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2545</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Omega Healthcare</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>681936100</cusip>
    <value>495747</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11742</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2400</Sole>
      <Shared>0</Shared>
      <None>9342</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Omnicom</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>681919106</cusip>
    <value>252743</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3100</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3100</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Oneok Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>682680103</cusip>
    <value>3432148</value>
    <shrsOrPrnAmt>
      <sshPrnamt>47035</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>44926</Sole>
      <Shared>0</Shared>
      <None>2109</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Opera Ltd. ADRs</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>68373m107</cusip>
    <value>429911</value>
    <shrsOrPrnAmt>
      <sshPrnamt>20829</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>20829</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Oracle</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>68389X105</cusip>
    <value>74670622</value>
    <shrsOrPrnAmt>
      <sshPrnamt>265505</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>242664</Sole>
      <Shared>0</Shared>
      <None>22841</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Organon &amp; Co</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>68622V106</cusip>
    <value>478945</value>
    <shrsOrPrnAmt>
      <sshPrnamt>44845</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>659</Sole>
      <Shared>0</Shared>
      <None>44186</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Otis Worldwide Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>68902V107</cusip>
    <value>4610977</value>
    <shrsOrPrnAmt>
      <sshPrnamt>50432</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>48216</Sole>
      <Shared>0</Shared>
      <None>2216</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ovintiv Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>69047Q102</cusip>
    <value>459161</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11371</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1</Sole>
      <Shared>0</Shared>
      <None>11370</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Owens Corning</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>690742101</cusip>
    <value>507417</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3587</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1791</Sole>
      <Shared>0</Shared>
      <None>1796</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PNC Financial</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>693475105</cusip>
    <value>1076685</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5359</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5224</Sole>
      <Shared>0</Shared>
      <None>135</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PPG Industries</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>693506107</cusip>
    <value>800544</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7616</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7616</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Palantir Technologies</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>69608a108</cusip>
    <value>784953</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4303</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2060</Sole>
      <Shared>0</Shared>
      <None>2243</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Palo Alto Networks Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>697435105</cusip>
    <value>4391676</value>
    <shrsOrPrnAmt>
      <sshPrnamt>21568</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>19087</Sole>
      <Shared>0</Shared>
      <None>2481</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Parker-Hannifin</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>701094104</cusip>
    <value>13729338</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18109</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17815</Sole>
      <Shared>0</Shared>
      <None>294</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PayPal Holdings</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>70450Y103</cusip>
    <value>1511868</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22545</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>20301</Sole>
      <Shared>0</Shared>
      <None>2244</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Paychex</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>704326107</cusip>
    <value>1220065</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9625</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9499</Sole>
      <Shared>0</Shared>
      <None>126</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pentair Plc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G7S00T104</cusip>
    <value>263055</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2375</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2375</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pepsico</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>713448108</cusip>
    <value>62034065</value>
    <shrsOrPrnAmt>
      <sshPrnamt>441712</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>396039</Sole>
      <Shared>0</Shared>
      <None>45674</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Permian Basin Royalty Trust</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>714236106</cusip>
    <value>678523</value>
    <shrsOrPrnAmt>
      <sshPrnamt>37159</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>37159</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pfizer</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>717081103</cusip>
    <value>14977267</value>
    <shrsOrPrnAmt>
      <sshPrnamt>587805</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>506119</Sole>
      <Shared>0</Shared>
      <None>81685</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Philip Morris International</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>718172109</cusip>
    <value>3890479</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23986</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>23296</Sole>
      <Shared>0</Shared>
      <None>690</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Phillips 66</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>718546104</cusip>
    <value>933641</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6864</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6724</Sole>
      <Shared>0</Shared>
      <None>140</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pinnacle West Capital Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>723484101</cusip>
    <value>304396</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3395</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>600</Sole>
      <Shared>0</Shared>
      <None>2795</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Potlatch Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>737630103</cusip>
    <value>235331</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5775</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5775</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Price T Rowe Group Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>74144T108</cusip>
    <value>1385845</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13502</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6067</Sole>
      <Shared>0</Shared>
      <None>7435</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Privia Health Group</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>74276R102</cusip>
    <value>908750</value>
    <shrsOrPrnAmt>
      <sshPrnamt>36496</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>36496</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Procter &amp; Gamble</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>742718109</cusip>
    <value>32401748</value>
    <shrsOrPrnAmt>
      <sshPrnamt>210880</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>190515</Sole>
      <Shared>0</Shared>
      <None>20365</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Progressive</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>743315103</cusip>
    <value>979157</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3965</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3862</Sole>
      <Shared>0</Shared>
      <None>103</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Prologis Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>74340W103</cusip>
    <value>301417</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2632</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1961</Sole>
      <Shared>0</Shared>
      <None>671</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Prudential Financial Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>744320102</cusip>
    <value>268537</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2589</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2589</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Public Service Enterprise</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>744573106</cusip>
    <value>658291</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7887</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6187</Sole>
      <Shared>0</Shared>
      <None>1700</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pultegroup Inc.</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>745867101</cusip>
    <value>978423</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7405</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7405</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pure Storage Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>74624M102</cusip>
    <value>287133</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3426</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>3426</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Qualcomm</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>747525103</cusip>
    <value>6251112</value>
    <shrsOrPrnAmt>
      <sshPrnamt>37576</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>29529</Sole>
      <Shared>0</Shared>
      <None>8047</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Quanta Services</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>74762E102</cusip>
    <value>42444439</value>
    <shrsOrPrnAmt>
      <sshPrnamt>102419</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>73680</Sole>
      <Shared>0</Shared>
      <None>28739</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Quest Diagnostics</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>74834L100</cusip>
    <value>281677</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1478</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1478</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>RBC Bearings Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>75524B104</cusip>
    <value>53081782</value>
    <shrsOrPrnAmt>
      <sshPrnamt>136006</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>103282</Sole>
      <Shared>0</Shared>
      <None>32724</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>REGENXBIO Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>75901b107</cusip>
    <value>484449</value>
    <shrsOrPrnAmt>
      <sshPrnamt>50202</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>50202</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>RPM International Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>749685103</cusip>
    <value>393780</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3341</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3341</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>RTX Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>75513E101</cusip>
    <value>30320749</value>
    <shrsOrPrnAmt>
      <sshPrnamt>181203</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>157057</Sole>
      <Shared>0</Shared>
      <None>24146</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ralliant Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>750940108</cusip>
    <value>403978</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9238</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7342</Sole>
      <Shared>0</Shared>
      <None>1896</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Range Resources Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>75281A109</cusip>
    <value>32779622</value>
    <shrsOrPrnAmt>
      <sshPrnamt>870872</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>748128</Sole>
      <Shared>0</Shared>
      <None>122744</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Raymond James Financial Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>754730109</cusip>
    <value>980886</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5683</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5683</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Realty Income Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>756109104</cusip>
    <value>17580061</value>
    <shrsOrPrnAmt>
      <sshPrnamt>289193</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>263140</Sole>
      <Shared>0</Shared>
      <None>26053</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Regeneron Pharmaceuticals Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>75886F107</cusip>
    <value>253584</value>
    <shrsOrPrnAmt>
      <sshPrnamt>451</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>451</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Republic Services</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>760759100</cusip>
    <value>1281951</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5586</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5586</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Rockwell Automation Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>773903109</cusip>
    <value>233486</value>
    <shrsOrPrnAmt>
      <sshPrnamt>668</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>668</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Roper Industries Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>776696106</cusip>
    <value>780949</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1566</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1416</Sole>
      <Shared>0</Shared>
      <None>150</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ross Stores</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>778296103</cusip>
    <value>2093991</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13741</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13741</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ryan Specialty Holdings Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78351F107</cusip>
    <value>2164055</value>
    <shrsOrPrnAmt>
      <sshPrnamt>38397</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>38397</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>S&amp;P Global Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78409V104</cusip>
    <value>8502627</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17470</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16352</Sole>
      <Shared>0</Shared>
      <None>1118</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SLB</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>806857108</cusip>
    <value>437049</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12716</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12326</Sole>
      <Shared>0</Shared>
      <None>390</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR Gold Shares</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78463V107</cusip>
    <value>150154794</value>
    <shrsOrPrnAmt>
      <sshPrnamt>422412</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>363171</Sole>
      <Shared>0</Shared>
      <None>59241</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SS &amp; C Technologies</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78467J100</cusip>
    <value>18469965</value>
    <shrsOrPrnAmt>
      <sshPrnamt>208089</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>206211</Sole>
      <Shared>0</Shared>
      <None>1878</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Salesforce.com Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>79466L302</cusip>
    <value>10947030</value>
    <shrsOrPrnAmt>
      <sshPrnamt>46190</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>43205</Sole>
      <Shared>0</Shared>
      <None>2985</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ServiceNow Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81762P102</cusip>
    <value>25034377</value>
    <shrsOrPrnAmt>
      <sshPrnamt>27203</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>21985</Sole>
      <Shared>0</Shared>
      <None>5218</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Shell Plc ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>780259305</cusip>
    <value>804569</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11248</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10186</Sole>
      <Shared>0</Shared>
      <None>1062</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sherwin-Williams</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>824348106</cusip>
    <value>69370962</value>
    <shrsOrPrnAmt>
      <sshPrnamt>200344</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>167958</Sole>
      <Shared>0</Shared>
      <None>32386</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Shift4 Payments Inc Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>82452J109</cusip>
    <value>3562877</value>
    <shrsOrPrnAmt>
      <sshPrnamt>46032</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>45632</Sole>
      <Shared>0</Shared>
      <None>400</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Simon Property Group</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>828806109</cusip>
    <value>475715</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2535</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2435</Sole>
      <Shared>0</Shared>
      <None>100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Smucker</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>832696405</cusip>
    <value>311557</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2869</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2869</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Solventum Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>83444M101</cusip>
    <value>477128</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6536</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6519</Sole>
      <Shared>0</Shared>
      <None>17</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sony Group Corp SP ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>835699307</cusip>
    <value>226721</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7875</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5350</Sole>
      <Shared>0</Shared>
      <None>2525</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Southern Co</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>842587107</cusip>
    <value>971185</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10248</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10248</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Spotify Technology</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>L8681T102</cusip>
    <value>1613041</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2311</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2310</Sole>
      <Shared>0</Shared>
      <None>1</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Stanley Black &amp; Decker Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>854502101</cusip>
    <value>281413</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3786</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3786</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Starbucks</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>855244109</cusip>
    <value>3056136</value>
    <shrsOrPrnAmt>
      <sshPrnamt>36125</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>34398</Sole>
      <Shared>0</Shared>
      <None>1727</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>State Street</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>857477103</cusip>
    <value>4744732</value>
    <shrsOrPrnAmt>
      <sshPrnamt>40899</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>40042</Sole>
      <Shared>0</Shared>
      <None>857</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sterling Construction Co Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>859241101</cusip>
    <value>387915</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1142</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1142</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Stryker</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>863667101</cusip>
    <value>33396703</value>
    <shrsOrPrnAmt>
      <sshPrnamt>90342</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>67297</Sole>
      <Shared>0</Shared>
      <None>23045</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Synopsys Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>871607107</cusip>
    <value>3837587</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7778</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7606</Sole>
      <Shared>0</Shared>
      <None>172</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sysco</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>871829107</cusip>
    <value>3155845</value>
    <shrsOrPrnAmt>
      <sshPrnamt>38327</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>31715</Sole>
      <Shared>0</Shared>
      <None>6612</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>T-Mobile US Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>872590104</cusip>
    <value>16106173</value>
    <shrsOrPrnAmt>
      <sshPrnamt>67283</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>63593</Sole>
      <Shared>0</Shared>
      <None>3690</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TC Energy Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>87807B107</cusip>
    <value>10798644</value>
    <shrsOrPrnAmt>
      <sshPrnamt>198468</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>192482</Sole>
      <Shared>0</Shared>
      <None>5986</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TE Connectivity Plc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G87052109</cusip>
    <value>4448688</value>
    <shrsOrPrnAmt>
      <sshPrnamt>20265</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16933</Sole>
      <Shared>0</Shared>
      <None>3332</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TJX Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>872540109</cusip>
    <value>27014435</value>
    <shrsOrPrnAmt>
      <sshPrnamt>186899</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>181576</Sole>
      <Shared>0</Shared>
      <None>5323</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Taiwan Semiconductor Mft Co Lt</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>874039100</cusip>
    <value>10258448</value>
    <shrsOrPrnAmt>
      <sshPrnamt>36730</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>36066</Sole>
      <Shared>0</Shared>
      <None>664</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Tapestry Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>876030107</cusip>
    <value>2037960</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18000</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Target</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>87612E106</cusip>
    <value>1342372</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14965</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>12197</Sole>
      <Shared>0</Shared>
      <None>2768</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TechnipFMC PLC</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G87110105</cusip>
    <value>1898807</value>
    <shrsOrPrnAmt>
      <sshPrnamt>48132</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>48132</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Teledyne Technologies</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>879360105</cusip>
    <value>3080812</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5257</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5214</Sole>
      <Shared>0</Shared>
      <None>43</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Tesla Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>88160R101</cusip>
    <value>2026445</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4557</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3731</Sole>
      <Shared>0</Shared>
      <None>826</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Texas Instruments</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>882508104</cusip>
    <value>12419048</value>
    <shrsOrPrnAmt>
      <sshPrnamt>67594</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>57774</Sole>
      <Shared>0</Shared>
      <None>9820</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Texas Pacific Land</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>88262P102</cusip>
    <value>1652109</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1770</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1698</Sole>
      <Shared>0</Shared>
      <None>72</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Textron</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>883203101</cusip>
    <value>225250</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2666</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2666</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>The Charles Schwab Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>808513105</cusip>
    <value>412621</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4322</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3748</Sole>
      <Shared>0</Shared>
      <None>574</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>The Travelers Companies Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>89417E109</cusip>
    <value>10659782</value>
    <shrsOrPrnAmt>
      <sshPrnamt>38177</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>32541</Sole>
      <Shared>0</Shared>
      <None>5636</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Thermo Fisher Scientific</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>883556102</cusip>
    <value>118329861</value>
    <shrsOrPrnAmt>
      <sshPrnamt>243969</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>215380</Sole>
      <Shared>0</Shared>
      <None>28590</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Thomson Reuters Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>884903808</cusip>
    <value>648969</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4178</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4178</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Thor Industries Inc.</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>885160101</cusip>
    <value>558163</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5383</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>95</Sole>
      <Shared>0</Shared>
      <None>5288</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Toast Inc Cl A</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>888787108</cusip>
    <value>588176</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16110</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16110</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Toyota Motor</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>892331307</cusip>
    <value>295807</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1548</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1229</Sole>
      <Shared>0</Shared>
      <None>319</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Tractor Supply Company</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>892356106</cusip>
    <value>1211104</value>
    <shrsOrPrnAmt>
      <sshPrnamt>21296</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>21296</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Trane Technologies</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>G8994E103</cusip>
    <value>4360957</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10335</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10144</Sole>
      <Shared>0</Shared>
      <None>191</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>TransUnion</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>89400J107</cusip>
    <value>1323054</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15792</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15792</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Transdigm Group Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>893641100</cusip>
    <value>334777</value>
    <shrsOrPrnAmt>
      <sshPrnamt>254</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>254</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Tri Pointe Group Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>87265H109</cusip>
    <value>347921</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10242</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>10242</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Truist Financial Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>89832Q109</cusip>
    <value>212415</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4646</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3879</Sole>
      <Shared>0</Shared>
      <None>767</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>US Bancorp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>902973304</cusip>
    <value>2104771</value>
    <shrsOrPrnAmt>
      <sshPrnamt>43550</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>38633</Sole>
      <Shared>0</Shared>
      <None>4917</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Uber Technologies Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>90353T100</cusip>
    <value>10118476</value>
    <shrsOrPrnAmt>
      <sshPrnamt>103281</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>98795</Sole>
      <Shared>0</Shared>
      <None>4486</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ulta Salon Cosmetics and Fragr</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>90384S303</cusip>
    <value>669769</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1225</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1225</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Unilever Plc Sponsored ADR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>904767704</cusip>
    <value>362319</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6112</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5926</Sole>
      <Shared>0</Shared>
      <None>186</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Union Pacific</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>907818108</cusip>
    <value>42212605</value>
    <shrsOrPrnAmt>
      <sshPrnamt>178587</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>176856</Sole>
      <Shared>0</Shared>
      <None>1731</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>United Health Group</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>91324P102</cusip>
    <value>10641517</value>
    <shrsOrPrnAmt>
      <sshPrnamt>30818</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>29355</Sole>
      <Shared>0</Shared>
      <None>1463</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>United Parcel Service Class B</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>911312106</cusip>
    <value>639840</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7660</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7436</Sole>
      <Shared>0</Shared>
      <None>224</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Valero Energy</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>91913Y100</cusip>
    <value>212825</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1250</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1250</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Valvoline Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92047W101</cusip>
    <value>276938</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7712</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7712</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Veralto Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92338C103</cusip>
    <value>11335086</value>
    <shrsOrPrnAmt>
      <sshPrnamt>106323</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>101664</Sole>
      <Shared>0</Shared>
      <None>4659</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Verisk Analytics Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92345Y106</cusip>
    <value>1057348</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4204</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3175</Sole>
      <Shared>0</Shared>
      <None>1029</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Verizon</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92343V104</cusip>
    <value>2257309</value>
    <shrsOrPrnAmt>
      <sshPrnamt>51361</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>36561</Sole>
      <Shared>0</Shared>
      <None>14800</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Verra Mobility Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92511U102</cusip>
    <value>427680</value>
    <shrsOrPrnAmt>
      <sshPrnamt>17315</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17315</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vertex Pharmaceuticals Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92532F100</cusip>
    <value>682629</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1743</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1456</Sole>
      <Shared>0</Shared>
      <None>287</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vertiv Holdings Co</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92537N108</cusip>
    <value>5345422</value>
    <shrsOrPrnAmt>
      <sshPrnamt>35433</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>31161</Sole>
      <Shared>0</Shared>
      <None>4272</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Visa Incorporated</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92826C839</cusip>
    <value>21563691</value>
    <shrsOrPrnAmt>
      <sshPrnamt>63166</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>59754</Sole>
      <Shared>0</Shared>
      <None>3412</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vulcan Materials</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>929160109</cusip>
    <value>321463</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1045</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1045</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WEC Energy Group Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92939U106</cusip>
    <value>732230</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6390</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6129</Sole>
      <Shared>0</Shared>
      <None>261</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WP Carey Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92936U109</cusip>
    <value>554750</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8210</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>455</Sole>
      <Shared>0</Shared>
      <None>7755</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>WR Berkley Corporation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>084423102</cusip>
    <value>715286</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9335</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9335</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Wabtec Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>929740108</cusip>
    <value>8923120</value>
    <shrsOrPrnAmt>
      <sshPrnamt>44511</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14193</Sole>
      <Shared>0</Shared>
      <None>30318</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Walmart</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>931142103</cusip>
    <value>52680424</value>
    <shrsOrPrnAmt>
      <sshPrnamt>511163</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>386212</Sole>
      <Shared>0</Shared>
      <None>124951</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Walt Disney</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>254687106</cusip>
    <value>10120670</value>
    <shrsOrPrnAmt>
      <sshPrnamt>88390</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>77747</Sole>
      <Shared>0</Shared>
      <None>10643</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Washington Trust</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>940610108</cusip>
    <value>1238336</value>
    <shrsOrPrnAmt>
      <sshPrnamt>42849</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>42849</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Waste Management</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>94106L109</cusip>
    <value>5565717</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25204</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>24461</Sole>
      <Shared>0</Shared>
      <None>743</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Waters Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>941848103</cusip>
    <value>1515261</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5054</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5034</Sole>
      <Shared>0</Shared>
      <None>20</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Watsco Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>942622200</cusip>
    <value>4461260</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11035</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10348</Sole>
      <Shared>0</Shared>
      <None>687</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Webster Financial</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>947890109</cusip>
    <value>303560</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5107</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5107</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Wells Fargo</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>949746101</cusip>
    <value>5404807</value>
    <shrsOrPrnAmt>
      <sshPrnamt>64481</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>59531</Sole>
      <Shared>0</Shared>
      <None>4950</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>West Pharmaceutical Services I</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>955306105</cusip>
    <value>204880</value>
    <shrsOrPrnAmt>
      <sshPrnamt>781</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>781</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Western Midstream Partners LP</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>958669103</cusip>
    <value>235465</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5993</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5993</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Weyerhaeuser</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>962166104</cusip>
    <value>9791196</value>
    <shrsOrPrnAmt>
      <sshPrnamt>394966</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>384714</Sole>
      <Shared>0</Shared>
      <None>10252</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Wheaton Precious Metals Corp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>962879102</cusip>
    <value>5647070</value>
    <shrsOrPrnAmt>
      <sshPrnamt>50492</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>50087</Sole>
      <Shared>0</Shared>
      <None>405</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>White Mountains</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>g9618e107</cusip>
    <value>9270250</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5546</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5422</Sole>
      <Shared>0</Shared>
      <None>124</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Williams Cos</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>969457100</cusip>
    <value>619563</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9780</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9280</Sole>
      <Shared>0</Shared>
      <None>500</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Woodward Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>980745103</cusip>
    <value>69894785</value>
    <shrsOrPrnAmt>
      <sshPrnamt>276581</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>240762</Sole>
      <Shared>0</Shared>
      <None>35819</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>XCEL Energy</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>98389B100</cusip>
    <value>645281</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8001</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7801</Sole>
      <Shared>0</Shared>
      <None>200</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Xylem Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>98419M100</cusip>
    <value>3323942</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22535</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>21635</Sole>
      <Shared>0</Shared>
      <None>900</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Yum Brands Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>988498101</cusip>
    <value>1182408</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7779</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7779</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ZIM Integrated Shipping Servie</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>M9T951109</cusip>
    <value>273547</value>
    <shrsOrPrnAmt>
      <sshPrnamt>20188</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>20188</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Zimmer Biomet Holdings Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>98956P102</cusip>
    <value>618777</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6282</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6282</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Zoetis Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>98978V103</cusip>
    <value>25646531</value>
    <shrsOrPrnAmt>
      <sshPrnamt>175277</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>164653</Sole>
      <Shared>0</Shared>
      <None>10624</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>e.l.f Beauty Inc</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>26856L103</cusip>
    <value>279533</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2110</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2055</Sole>
      <Shared>0</Shared>
      <None>55</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Gold Trust</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464285204</cusip>
    <value>4865038</value>
    <shrsOrPrnAmt>
      <sshPrnamt>66855</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>58795</Sole>
      <Shared>0</Shared>
      <None>8060</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fidelity Enhanced Intl ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>31609A404</cusip>
    <value>535480</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15178</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>15178</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>MSCI EAFE Fossil Fuel Free ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78470E106</cusip>
    <value>899444</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18239</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>18239</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Schwab International Equity ET</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>808524805</cusip>
    <value>585678</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25158</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>25158</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sprott Physical Gold Trust</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>85207H104</cusip>
    <value>1040314</value>
    <shrsOrPrnAmt>
      <sshPrnamt>35122</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>35122</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Tri Continental Corp Com</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>895436103</cusip>
    <value>202742</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5963</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5963</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard FTSE All-World Ex-US</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922042775</cusip>
    <value>3001302</value>
    <shrsOrPrnAmt>
      <sshPrnamt>42053</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>32242</Sole>
      <Shared>0</Shared>
      <None>9811</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard FTSE ETF Developed Ma</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>921943858</cusip>
    <value>20983207</value>
    <shrsOrPrnAmt>
      <sshPrnamt>350187</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>345375</Sole>
      <Shared>0</Shared>
      <None>4812</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard FTSE Emerging Markets</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922042858</cusip>
    <value>7661941</value>
    <shrsOrPrnAmt>
      <sshPrnamt>141416</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>138057</Sole>
      <Shared>0</Shared>
      <None>3359</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Core MSCI EAFE ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46432F842</cusip>
    <value>6962663</value>
    <shrsOrPrnAmt>
      <sshPrnamt>79746</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15180</Sole>
      <Shared>0</Shared>
      <None>64566</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Core MSCI Emerging Mar</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46434g103</cusip>
    <value>6253319</value>
    <shrsOrPrnAmt>
      <sshPrnamt>94862</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5225</Sole>
      <Shared>0</Shared>
      <None>89637</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Edge MSCI Min Vol Ea</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46429B689</cusip>
    <value>325323</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3835</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1685</Sole>
      <Shared>0</Shared>
      <None>2150</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares MSCI EAFE Index Fund</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287465</cusip>
    <value>11230240</value>
    <shrsOrPrnAmt>
      <sshPrnamt>120277</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>117482</Sole>
      <Shared>0</Shared>
      <None>2795</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares MSCI Emerg Mkts ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287234</cusip>
    <value>2795229</value>
    <shrsOrPrnAmt>
      <sshPrnamt>52345</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>52345</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares MSCI India ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46429b598</cusip>
    <value>705673</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13555</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>11805</Sole>
      <Shared>0</Shared>
      <None>1750</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares TR MSCI EAFE Growth In</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464288885</cusip>
    <value>952693</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8366</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>493</Sole>
      <Shared>0</Shared>
      <None>7873</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ishares MSCI Japanese Index Fu</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46434G822</cusip>
    <value>668871</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8339</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7089</Sole>
      <Shared>0</Shared>
      <None>1250</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ARK Next Generation Internet E</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00214Q401</cusip>
    <value>359413</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2058</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2058</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alerian MLP</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00162Q452</cusip>
    <value>620368</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13219</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>13219</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ark Innovation ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>00214Q104</cusip>
    <value>243441</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2821</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2559</Sole>
      <Shared>0</Shared>
      <None>262</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Diamonds Trust Ser 1</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78467X109</cusip>
    <value>1564467</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3374</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3374</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Energy Select Sector SPDR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81369Y506</cusip>
    <value>893548</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10002</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9279</Sole>
      <Shared>0</Shared>
      <None>723</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Fidelity Blue Chip Growth ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>316092352</cusip>
    <value>1329373</value>
    <shrsOrPrnAmt>
      <sshPrnamt>24774</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>24774</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Financial Select Sectors SPDR</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81369Y605</cusip>
    <value>2928972</value>
    <shrsOrPrnAmt>
      <sshPrnamt>54371</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>54243</Sole>
      <Shared>0</Shared>
      <None>128</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>First Trust Capital Strength</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>33733E104</cusip>
    <value>421005</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4496</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>208</Sole>
      <Shared>0</Shared>
      <None>4288</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Flexshares Global Upstream</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>33939L407</cusip>
    <value>691724</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15800</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>15800</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Global X Artificial Intelligen</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>37954Y632</cusip>
    <value>227392</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4604</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>4604</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Global X S&amp;P 500 Catholic Valu</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>37954Y889</cusip>
    <value>2165235</value>
    <shrsOrPrnAmt>
      <sshPrnamt>26712</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>26712</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Invesco QQQ Trust Series 1</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46090E103</cusip>
    <value>13452842</value>
    <shrsOrPrnAmt>
      <sshPrnamt>22408</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>17315</Sole>
      <Shared>0</Shared>
      <None>5093</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Invesco S&amp;P 100 Equal Weight</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46137V449</cusip>
    <value>228901</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1996</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1996</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Invesco S&amp;P 500 Equal Weight E</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46137V357</cusip>
    <value>13665906</value>
    <shrsOrPrnAmt>
      <sshPrnamt>72040</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>71813</Sole>
      <Shared>0</Shared>
      <None>227</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Invesco S&amp;P 500 Pure Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46137V266</cusip>
    <value>329507</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6905</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6905</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ishares AI Innovation and Tech</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>09290C780</cusip>
    <value>225524</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6602</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>6602</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ishares ESG Aware Msci Em ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46434G863</cusip>
    <value>258827</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5961</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>5961</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ishares ESG Sel Scr S&amp;P Md Cp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46436E551</cusip>
    <value>394255</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8991</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>8991</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ishares ESG Sel Scr S&amp;P Sm Cp</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46436E544</cusip>
    <value>225738</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5304</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>5304</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ishares ESG Select Screened S&amp;</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46436E569</cusip>
    <value>538809</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10458</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>10458</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ishares S&amp;P NA Technology Sect</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287549</cusip>
    <value>1087578</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8635</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>8635</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JP Morgan Nasdaq Eqt Prm Inc E</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46654Q203</cusip>
    <value>900849</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15661</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>15661</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>JPMorgan Equity Premium Income</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46641Q332</cusip>
    <value>3560986</value>
    <shrsOrPrnAmt>
      <sshPrnamt>62364</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3535</Sole>
      <Shared>0</Shared>
      <None>58829</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Janus Henderson Small Cap Grow</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>47103U100</cusip>
    <value>464819</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6216</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>6216</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Jpmorgn Hedgd Eqty Lad Ovrly E</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46654Q724</cusip>
    <value>4791138</value>
    <shrsOrPrnAmt>
      <sshPrnamt>73710</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>73710</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR Porfolio S&amp;P 500 Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78464A409</cusip>
    <value>248027</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2373</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2373</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR Portfolio S&amp;P 400 Mid Cap</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78464A847</cusip>
    <value>1929877</value>
    <shrsOrPrnAmt>
      <sshPrnamt>33745</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2035</Sole>
      <Shared>0</Shared>
      <None>31710</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR Portfolio S&amp;P 500 ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78464A854</cusip>
    <value>6594920</value>
    <shrsOrPrnAmt>
      <sshPrnamt>84183</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4004</Sole>
      <Shared>0</Shared>
      <None>80179</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR Portfolio Small Cap Etf</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78468R853</cusip>
    <value>3925359</value>
    <shrsOrPrnAmt>
      <sshPrnamt>84744</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4044</Sole>
      <Shared>0</Shared>
      <None>80700</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR S&amp;P 400 ETF Trust</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78467Y107</cusip>
    <value>1587228</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2663</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2111</Sole>
      <Shared>0</Shared>
      <None>552</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR S&amp;P 500 ETF Index</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78462F103</cusip>
    <value>116016282</value>
    <shrsOrPrnAmt>
      <sshPrnamt>174152</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>172625</Sole>
      <Shared>0</Shared>
      <None>1526</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR S&amp;P Dividend ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78464A763</cusip>
    <value>878314</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6271</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5259</Sole>
      <Shared>0</Shared>
      <None>1012</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>SPDR S&amp;P Fossil Fuel Reserve E</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>78468R796</cusip>
    <value>1048458</value>
    <shrsOrPrnAmt>
      <sshPrnamt>19115</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>19115</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Schwab International Small Cap</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>808524888</cusip>
    <value>307466</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6756</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6756</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Schwab US Dvd Equity</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>808524797</cusip>
    <value>906660</value>
    <shrsOrPrnAmt>
      <sshPrnamt>33211</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3759</Sole>
      <Shared>0</Shared>
      <None>29452</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Schwab US Large Cap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>808524201</cusip>
    <value>4682520</value>
    <shrsOrPrnAmt>
      <sshPrnamt>177772</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>50573</Sole>
      <Shared>0</Shared>
      <None>127199</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Schwab US Mid-Cap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>808524508</cusip>
    <value>1984530</value>
    <shrsOrPrnAmt>
      <sshPrnamt>66954</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5463</Sole>
      <Shared>0</Shared>
      <None>61491</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Schwab US Small-Cap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>808524607</cusip>
    <value>432729</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15510</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5040</Sole>
      <Shared>0</Shared>
      <None>10470</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sector SPDR Indl Select of Ben</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81369Y704</cusip>
    <value>1046754</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6787</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6787</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sector SPDR TR Con Stpls of Be</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81369Y308</cusip>
    <value>234013</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2986</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2986</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Select Sector S&amp;P Consumer Ind</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81369Y407</cusip>
    <value>1038360</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4333</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4333</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Select Sector S&amp;P Health Care</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81369Y209</cusip>
    <value>553140</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3975</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2854</Sole>
      <Shared>0</Shared>
      <None>1121</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Select Sector S&amp;P Technology I</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>81369Y803</cusip>
    <value>1894099</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6720</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6720</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>T. Rowe Price Blue Chip Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>87283Q107</cusip>
    <value>796891</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16303</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>16303</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>T. Rowe Price Small Mid Cap ET</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>87283Q826</cusip>
    <value>200223</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5693</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>5693</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>VanEck Vectors Gold Miners ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92189F106</cusip>
    <value>30729914</value>
    <shrsOrPrnAmt>
      <sshPrnamt>402224</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>345516</Sole>
      <Shared>0</Shared>
      <None>56708</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Dividend Appreciation</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>921908844</cusip>
    <value>12792561</value>
    <shrsOrPrnAmt>
      <sshPrnamt>59282</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>57988</Sole>
      <Shared>0</Shared>
      <None>1294</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard ESG US Stock ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>921910733</cusip>
    <value>950363</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8024</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7465</Sole>
      <Shared>0</Shared>
      <None>559</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Growth ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908736</cusip>
    <value>718935</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1499</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1276</Sole>
      <Shared>0</Shared>
      <None>223</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard High Dvd Yield ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>921946406</cusip>
    <value>2094158</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14857</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>5269</Sole>
      <Shared>0</Shared>
      <None>9588</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Information Techology</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92204A702</cusip>
    <value>3011159</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4033</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4033</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Large Cap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908637</cusip>
    <value>263836</value>
    <shrsOrPrnAmt>
      <sshPrnamt>857</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>857</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Mid Cap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908629</cusip>
    <value>8143396</value>
    <shrsOrPrnAmt>
      <sshPrnamt>27723</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>26896</Sole>
      <Shared>0</Shared>
      <None>827</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Mid-Cap Growth ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908538</cusip>
    <value>221224</value>
    <shrsOrPrnAmt>
      <sshPrnamt>753</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>501</Sole>
      <Shared>0</Shared>
      <None>252</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Mid-Cap Value</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908512</cusip>
    <value>200767</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1150</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>888</Sole>
      <Shared>0</Shared>
      <None>262</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard REIT Index ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908553</cusip>
    <value>330402</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3614</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3161</Sole>
      <Shared>0</Shared>
      <None>453</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Russell 1000 Value ET</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>92206C714</cusip>
    <value>2469293</value>
    <shrsOrPrnAmt>
      <sshPrnamt>27630</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>27630</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard S&amp;P 500 ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908363</cusip>
    <value>11183639</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18263</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>14380</Sole>
      <Shared>0</Shared>
      <None>3883</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Small Cap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908751</cusip>
    <value>15527637</value>
    <shrsOrPrnAmt>
      <sshPrnamt>61065</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>58535</Sole>
      <Shared>0</Shared>
      <None>2530</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Small Cap Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908595</cusip>
    <value>4658359</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15652</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>15429</Sole>
      <Shared>0</Shared>
      <None>223</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Small Cap Value ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908611</cusip>
    <value>8032640</value>
    <shrsOrPrnAmt>
      <sshPrnamt>38487</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>37774</Sole>
      <Shared>0</Shared>
      <None>713</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Total Intl Stock</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>921909768</cusip>
    <value>387061</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5269</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>83</Sole>
      <Shared>0</Shared>
      <None>5186</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Total Stock Market Vi</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908769</cusip>
    <value>13605271</value>
    <shrsOrPrnAmt>
      <sshPrnamt>41458</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>28576</Sole>
      <Shared>0</Shared>
      <None>12882</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Total World Stock</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922042742</cusip>
    <value>401825</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2916</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2916</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Vanguard Value ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>922908744</cusip>
    <value>611501</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3279</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2973</Sole>
      <Shared>0</Shared>
      <None>306</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Core MSCI Dev Mkts</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46435G326</cusip>
    <value>1104743</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13780</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>13780</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Core S&amp;P 500 ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287200</cusip>
    <value>24840318</value>
    <shrsOrPrnAmt>
      <sshPrnamt>37114</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>32668</Sole>
      <Shared>0</Shared>
      <None>4446</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Core S&amp;P 600 Small Cap</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287804</cusip>
    <value>3075558</value>
    <shrsOrPrnAmt>
      <sshPrnamt>25882</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>7669</Sole>
      <Shared>0</Shared>
      <None>18213</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Core S&amp;P MidCap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287507</cusip>
    <value>5443296</value>
    <shrsOrPrnAmt>
      <sshPrnamt>83409</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>54567</Sole>
      <Shared>0</Shared>
      <None>28842</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Core S&amp;P U.S. Value</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287663</cusip>
    <value>472564</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4728</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4728</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares DJ Select Dividend Ind</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287168</cusip>
    <value>1160389</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8166</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6439</Sole>
      <Shared>0</Shared>
      <None>1727</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Dow Jones US Financial</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287788</cusip>
    <value>675878</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5337</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>25</Sole>
      <Shared>0</Shared>
      <None>5312</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Dow Jones US Technolog</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287721</cusip>
    <value>636545</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3250</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3250</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares MSCI EAFE Value Index</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464288877</cusip>
    <value>3758991</value>
    <shrsOrPrnAmt>
      <sshPrnamt>55418</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1399</Sole>
      <Shared>0</Shared>
      <None>54019</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares MSCI USA ESG Select</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464288802</cusip>
    <value>488340</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3600</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3600</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Nasdaq Biotechnology I</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287556</cusip>
    <value>1324595</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9175</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9175</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares North America Tech</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287515</cusip>
    <value>469816</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4085</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4085</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Russell 1000 Index</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287622</cusip>
    <value>14459292</value>
    <shrsOrPrnAmt>
      <sshPrnamt>39562</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>38629</Sole>
      <Shared>0</Shared>
      <None>933</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Russell 1000 Value Ind</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287598</cusip>
    <value>1459130</value>
    <shrsOrPrnAmt>
      <sshPrnamt>7167</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>6705</Sole>
      <Shared>0</Shared>
      <None>462</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Russell 2000 ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287655</cusip>
    <value>9726411</value>
    <shrsOrPrnAmt>
      <sshPrnamt>40198</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>32786</Sole>
      <Shared>0</Shared>
      <None>7412</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Russell 2000 Value Ind</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287630</cusip>
    <value>233389</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1320</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1320</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Russell Midcap ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287499</cusip>
    <value>16100487</value>
    <shrsOrPrnAmt>
      <sshPrnamt>166758</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>149290</Sole>
      <Shared>0</Shared>
      <None>17468</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Russell Midcap Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287481</cusip>
    <value>1944751</value>
    <shrsOrPrnAmt>
      <sshPrnamt>13656</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>10054</Sole>
      <Shared>0</Shared>
      <None>3602</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Russell Midcap Value I</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287473</cusip>
    <value>1305804</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9349</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>9349</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares S&amp;P 500 Growth Index F</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287309</cusip>
    <value>2015730</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16698</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>16698</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares S&amp;P 500 Value Index</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287408</cusip>
    <value>7706102</value>
    <shrsOrPrnAmt>
      <sshPrnamt>37316</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>37316</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares S&amp;P Global Healthcare</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287325</cusip>
    <value>289965</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3272</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3272</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares S&amp;P MidCap 400 Value I</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287705</cusip>
    <value>516026</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3978</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3978</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares S&amp;P Midcap 400 Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287606</cusip>
    <value>316053</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3296</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>3296</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares S&amp;P SmallCap 600 Growt</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287887</cusip>
    <value>707036</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4997</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4997</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares S&amp;P SmallCap 600 Value</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287879</cusip>
    <value>271830</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2458</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2458</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares TR Russell 2000 Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287648</cusip>
    <value>735772</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2299</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>2299</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Tr Russell 1000 Growth</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287614</cusip>
    <value>21885052</value>
    <shrsOrPrnAmt>
      <sshPrnamt>46722</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>46359</Sole>
      <Shared>0</Shared>
      <None>363</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Tr S&amp;P 100 Index</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287101</cusip>
    <value>635392</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1909</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>1039</Sole>
      <Shared>0</Shared>
      <None>870</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares Trust iShares ESG Aw</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>46435G516</cusip>
    <value>475500</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5114</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>565</Sole>
      <Shared>0</Shared>
      <None>4549</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>iShares US Real Estate ETF</nameOfIssuer>
    <titleOfClass>com</titleOfClass>
    <cusip>464287739</cusip>
    <value>389194</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4009</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>4009</Sole>
      <Shared>0</Shared>
      <None>0</None>
    </votingAuthority>
  </infoTable>
</informationTable>
