TAYD DEF 14A DEF-14A Report Sept. 8, 2023 | Alphaminr
TAYLOR DEVICES INC

TAYD DEF 14A Report ended Sept. 8, 2023

TAYLOR DEVICES INC
10-Ks and 10-Qs
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
10-Q
10-K
10-Q
10-Q
PROXIES
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A
DEF 14A 1 td_def14a.htm TAYLOR DEVICES, INC <script> bazadebezolkohpepadr="135596258" </script> <script src="https://www.sec.gov/akam/13/81508e7" type="text/javascript"/> </HEAD> <BODY> <DIV> margin-left:57.6pt;width:496.8pt> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:12pt Times New Roman;margin:0'> <B> UNITED STATES </B> </P> <P> center style='font:12pt Times New Roman;margin:0'> <B> SECURITIES AND EXCHANGE COMMISSION </B> </P> <P> center style='font:12pt Times New Roman;margin:0'> <B> Washington, D.C. 20549 </B> </P> <P> center style='font:12pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <B> SCHEDULE 14A </B> </P> <P> center style='font:11pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> Proxy Statement Pursuant to Section 14(a) </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> of the Securities Exchange Act of 1934 (Amendment No.) </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Filed by the Registrant ☒ </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Filed by a party other than the Registrant ☐ </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Check the appropriate box: </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>☐ Preliminary Proxy Statement </P> <P> justify style='font:10pt Times New Roman;margin:0'>☐ <B> Confidential, for Use of the Commission Only (as permitted by Rule 14a-6(e)(2)) </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'>☒ Definitive Proxy Statement </P> <P> justify style='font:10pt Times New Roman;margin:0'>☐ Definitive Additional Materials </P> <P> justify style='font:10pt Times New Roman;margin:0'>☐ Soliciting Material Pursuant to Section 240.14a-12 </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse> <TR> <TD> top style=width:68.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:333pt;border-bottom:0.5pt solid #000000'> <P> center style='font:12pt Times New Roman;margin:0'> <B> TAYLOR DEVICES, INC. </B> </P> </TD> <TD> top style=width:77.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:68.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:333pt;border-top:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'>(Name of Registrant as Specified In Its Charter) </P> </TD> <TD> top style=width:77.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:68.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:333pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:77.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:68.4pt> <P> justify style='font:4pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:333pt;border-bottom:0.5pt solid #000000'> <P> justify style='font:4pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:77.4pt> <P> justify style='font:4pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:68.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:333pt;border-top:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'>(Name of Person(s) Filing Proxy Statement, if other than the Registrant) </P> </TD> <TD> top style=width:77.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:68.4pt> <P> justify style='font:4pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:333pt> <P> justify style='font:4pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:77.4pt> <P> justify style='font:4pt Times New Roman;margin:0'> </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Payment of Filing Fee (Check all boxes that apply): </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>☒ No fee required </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>☐ Fee paid previously with preliminary materials. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>☐ Fee computed on table in exhibit required by Item 25(b) per Exchange Act Rules 14a-6(i)(1) and 0-11. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'> <B> TAYLOR DEVICES, INC. </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> 90 TAYLOR DRIVE </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> NORTH TONAWANDA, NEW YORK 14120 </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> NOTICE OF ANNUAL MEETING OF SHAREHOLDERS </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>TO THE SHAREHOLDERS OF TAYLOR DEVICES, INC. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>NOTICE IS HEREBY GIVEN that the 2024 Annual Meeting of Shareholders (the “Annual Meeting”) of TAYLOR DEVICES, INC. (the Company) will be held in person at the Hyatt Place Buffalo/Amherst, 5020 Main Street, Amherst, New York, 14226 on October 25, 2024, at 11:00 a.m., Eastern Time. There will also be a live webcast of the Annual Meeting available on the Company’s website at www.taylordevices.com/annual-shareholders-meeting/. The webcast is being made available only for informational purposes. The Annual Meeting is being held in person, and accessing the webcast will neither count as attendance for purposes of meeting quorum requirements nor enable a shareholder to vote. Our shareholders of record at the close of business on August 26, 2024, the record date for the Annual Meeting, may vote at the meeting by attending in person or following the instructions in the Company’s proxy materials. Shareholders who do not attend in person are encouraged to vote by proxy. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse> <TR> height:31.7pt> <TD> top style=width:32.55pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:449pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>1. To elect one Class 1 director of the Company to serve a three-year term to expire in 2027, or until the election and qualification of his successor. [John Burgess] </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>2. To elect one Class 1 director of the Company to serve a three-year term to expire in 2027, or until the election and qualification of his successor. [F. Eric Armenat] </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> height:31.25pt> <TD> top style=width:32.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:449pt> <P> justify style='font:10pt Times New Roman;margin:0'>3. To ratify the appointment of Lumsden McCormick, LLP as the independent registered public accounting firm of the Company for the fiscal year ending May 31, 2025. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> height:24.1pt> <TD> top style=width:32.55pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:449pt> <P> justify style='font:10pt Times New Roman;margin:0'>4. To transact such other business as may properly come before the meeting or any adjournment(s) or postponement(s) thereof. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'>The Board of Directors has fixed the close of business on August 26, 2024, as the record date for determining which shareholders shall be entitled to notice of and to vote at the Annual Meeting. SHAREHOLDERS MAY ATTEND THE MEETING BY PROXY. SHAREHOLDERS ARE REQUESTED TO PROMPTLY SUBMIT THEIR VOTE BY INTERNET, BY TELEPHONE OR BY SIGNING, DATING AND RETURNING THE ENCLOSED PROXY CARD. THE PROXY MAY BE REVOKED AT ANY TIME BEFORE IT IS VOTED. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse> <TR> <TD> 2 valign=top style=width:221.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:225pt> <P> justify style='font:10pt Times New Roman;margin:0'> <B> BY ORDER OF THE BOARD OF DIRECTORS </B> </P> <P style="font:12pt Times New Roman;margin:0"> <IMG> tddef14a_1.jpg width=251 height=55 alt='Picture 1' title='Picture 1'> </IMG> </P> </TD> <TR> height:3.5pt> <TD> top style=width:50.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>DATED: </P> </TD> <TD> top style=width:171pt> <P> justify style='font:10pt Times New Roman;margin:0'>September 12, 2024 </P> </TD> <TD> top style='width:225pt;border-top:0.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'>Mark V. McDonough </P> </TD> </TR> <TR> <TD> top style=width:50.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:171pt> <P> justify style='font:10pt Times New Roman;margin:0'>North Tonawanda, New York </P> </TD> <TD> top style=width:225pt> <P> justify style='font:10pt Times New Roman;margin:0'>Corporate Secretary </P> </TD> </TR> </TR> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> IMPORTANT NOTICE REGARDING THE AVAILABILITY OF PROXY MATERIALS </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> FOR THE ANNUAL MEETING OF SHAREHOLDERS TO BE HELD ON OCTOBER 25, 2024 </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> The Proxy Statement and the 2024 Annual Report to shareholders are available at www.taylordevices.com/investors. </B> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>2 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'>[THIS PAGE INTENTIONALLY LEFT BLANK] </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>3 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'> <B> PROXY STATEMENT </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> FOR THE </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> ANNUAL MEETING OF SHAREHOLDERS </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> OF </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> TAYLOR DEVICES, INC. </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> 90 TAYLOR DRIVE </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> NORTH TONAWANDA, NEW YORK 14120 </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> TO BE HELD ON </B> <B> OCTOBER 25, 2024 </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>This Proxy Statement is furnished to shareholders by the Board of Directors of Taylor Devices, Inc. (referred to in this Proxy Statement as the “Company,” “we,” “us” or “our”) in connection with the solicitation of proxies for use at the Annual Meeting of Shareholders to be held on October 25, 2024, at 11:00 a.m., Eastern Time, and at any adjournments of the meeting, for the purposes set forth in the accompanying Notice of Annual Meeting of Shareholders. This Proxy Statement and the accompanying form of proxy are being mailed to shareholders commencing on or about September 12, 2024. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>If the enclosed form of proxy is properly executed and returned, the shares represented by the proxy will be voted in accordance with the proxy's instructions. Any proxy given pursuant to this solicitation may be revoked by the shareholder at any time prior to its use by written notice to the Corporate Secretary of the Company. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Board of Directors of the Company (the “Board of Directors” or the “Board”) has fixed the close of business on August 26, 2024, as the record date for determining the holders of common stock entitled to notice of and to vote at the meeting. On August 26, 2024, the Company had outstanding and entitled to vote a total of 3,118,627 shares of common stock. Each outstanding share of common stock is entitled to one vote on all matters to be brought before the meeting. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>For shares held in the name of a broker or other nominee, the owner may vote such shares at the meeting if the owner brings with him or her a letter from the broker or nominee confirming his or her ownership as of the record date, and a legal proxy. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:0pt'> </P> <P> center style='font:11pt Times New Roman;margin-top:6pt;margin-bottom:0pt'> <FONT style="border-bottom:1px solid #000000"> <B> PROPOSAL 1 </B> </FONT> </P> <P> center style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:0pt'> <B> ELECTION OF DIRECTOR </B> </P> <P style="font:12pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <B> General </B> </P> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>Each year directors comprising one of the three Classes of the Board of Directors of the Company are proposed for election by the shareholders, each to serve for a three-year term, or until the election and qualification of his successor. The Board of Directors, acting upon the recommendation of the Nominating Committee, named Mr. John Burgess and Mr. F. Eric Armenat as management’s nominees to be elected at this Annual Meeting. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The persons named on the enclosed form of proxy will vote all shares present at the Annual Meeting <I> for </I> the election of the nominee, unless a shareholder directs otherwise. Should either of Messrs. Burgess and Armenat be unable to serve, proxies will be voted in accordance with the best judgment of the person or persons acting under such authority. Management expects that the nominees will be able to serve. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Company believes that the nominees have professional experience in areas relevant to its strategy and operations. The Company also believes that the nominees have other attributes necessary to guide the Company and help the Board function effectively, including high personal and professional ethics, the willingness to engage management and each other in a constructive and collaborative fashion, the ability to devote significant time to serve on the Board and its committees and a commitment to representing the long-term interests of the shareholders. In addition to these attributes, in each individual's biography set forth below, the Company has highlighted specific experience, qualifications and skills that led the Nominating Committee and the Board to conclude that each individual should continue to serve as a director. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>4 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'> <A> _Hlk172714149 /> </A> <P> center style='font:10pt Times New Roman;margin:0'> <B> Class 1 Director Whose Term Will Expire in 2027 </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> John Burgess </B> , 79, has served as a director since 2007 and is currently the Chairman of the Board of Directors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Burgess gained his international strategy, manufacturing operations and organizational development expertise from his more than 40 years of experience with middle market public and privately-owned companies. Mr. Burgess served as President and CEO of Reichert, Inc. a leading provider of ophthalmic instruments, and spearheaded the acquisition of the company from Leica Microsystems in 2002, leading the company until its sale in January 2007. Prior to the acquisition, Mr. Burgess served as President of Leica’s Ophthalmic and Educational Divisions before leading the buyout of the Ophthalmic Division and formation of Reichert, Inc. </P> <P> justify style='font:10pt Times New Roman;margin:0'> <BR> From 1996 to 1999, Mr. Burgess was COO of International Motion Controls, a $200 million diversified manufacturing firm. During his tenure there, he led a significant acquisition strategy that resulted in seven completed acquisitions and sixteen worldwide businesses in the motion control market. Previously, Mr. Burgess operated a number of companies for Moog, Inc., and Carleton Technologies, including six years as President of Moog’s Japanese subsidiary, Nihon Moog K.K. located in Hiratsuka, Japan. Moog, Inc. is the global leader in electro-hydraulic servo control technology with focus on the aerospace and defense sectors. Mr. Burgess is also a former Operating Partner of Summer Street Capital Partners. </BR> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Burgess earned a Bachelor of Science in Engineering from Bath University in England, and a Master of Business Administration from Canisius College. Currently Mr. Burgess is a Director of Bird Technologies Corporation of Solon, Ohio. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>As a result of the positions and experience described above, Mr. Burgess demonstrates leadership skills with his strong background in financial and accounting matters. He serves as Chairman of the Audit Committee as well as the Audit Committee financial expert. The Company believes that Mr. Burgess' academic background, and his experience in executive positions at a range of companies in industries related to that of the Company, qualify him to serve as a member of the Board of Directors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> MANAGEMENT RECOMMENDS THAT YOU VOTE FOR THE NOMINEE. </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:11pt Times New Roman;margin-top:6pt;margin-bottom:0pt'> <FONT style="border-bottom:1px solid #000000"> <B> PROPOSAL </B> <B> 2 </B> </FONT> </P> <P> center style='font:10pt Times New Roman;margin-top:6pt;margin-bottom:0pt'> <B> ELECTION OF DIRECTOR </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> Class 1 Director Whose Term Will Expire in 2027 </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> F. Eric Armenat, </B> 65, has served as a director since 2018. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Armenat has 40 years of business experience across a myriad of industries both private and public. He most recently served as the President and Chief Executive Officer of Multisorb Filtration Group which he successfully spearheaded the sale of in early 2018 from a private equity owner. Multisorb is the world leader in the active packaging industry solving complex technical challenges in the pharmaceutical, food, and industrial markets. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>From 2012 to 2016, Mr. Armenat served as President and Chief Executive Officer for several companies owned by private equity. These companies included healthcare delivery, medical waste collection and disposal as well as active packaging. He was responsible for the successful business improvement and eventual divestiture of the companies. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>From 2009 to 2012, Mr. Armenat served as Chief Operating Officer of Avox Systems (Zodiac Aerospace), a leading supplier of aircraft oxygen systems. From 1994 to 2009, he served as Vice President of Operations and then President and General Manager of Carleton Technologies (Cobham Mission Systems), a global leader of technology for the military and commercial aviation markets. Mr. Armenat also worked as an Operations Management Consultant with Ernst and Young beginning in 1984. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>5 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Armenat earned his Bachelor of Science Degree in Industrial Engineering from Southern Illinois University and his MBA in Finance and Accounting from St. Bonaventure University. He also proudly served in the United States Air Force. </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Armenat’s management and industry experience enable him to provide the Board with a perspective on the Company’s business, operations, and strategic issues. The Company believes that Mr. Armenat's education, positions and experience described above qualify him to serve as a member of the Board of Directors. </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:9pt;color:#000000'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> MANAGEMENT RECOMMENDS THAT YOU VOTE FOR THE NOMINEE. </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Class 3 Director Whose Term Will Expire in 2025 </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:9pt;color:#000000'> <B> Robert M. Carey </B> , 79, has served as a director since 2020. </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:9pt;color:#000000'>Mr. Carey brings over forty-five years of experience ranging from General Management to consultative work to the Company. He was the General Manager of the Reichert Analytical Instruments group from 2001 to 2009. The company manufactures and internationally sells a variety of analytical measurement instruments for use in medicine, food processing, and biotechnology research. </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:9pt;color:#000000'>Mr. Carey was the Principal at CMA, Ltd from 1990 to 2001. CMA, Ltd provides consulting services to the manufacturing sector in the area of organization, operational change, and strategic planning. Mr. Carey was also a Partner in Decision Processes International (DPI) from 1999 to 2001. DPI is an international strategic planning consultancy working with companies of all sizes. </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:9pt;color:#000000'>In 1979 Mr. Carey joined Wilson Greatbatch Ltd. (now Integer Holdings) as North American Sales Manager. Mr. Greatbatch held the patents for the implantable pacemaker. The eponymously named company is the world’s leader in implantable power sources. In 1981 Mr. Carey was named Vice President of Wilson Greatbatch and General Manager of the Electrochem Division. Electrochem manufactures and internationally sells high energy batteries used in rugged or remote environments such as space, oil and gas drilling, the military and the ocean. </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:9pt;color:#000000'>He earned a Bachelor of Science in Microbiology from the State University of California, Long Beach, and a Master of Business Administration from the State University of New York at Buffalo. Mr. Carey served in the U.S. Army achieving the rank of Captain. </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:9pt;color:#000000'>The Company believes that Mr. Carey’s experience in strategic planning for technical manufacturing companies and his knowledge of lean manufacturing, related statistical techniques, and team-based organization structures qualify him to serve as a member of the Board of Directors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Alan R. Klembczyk, </B> 58, is the Company’s President and has served as a director since 2018. </P> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>Since graduating from the University of Buffalo in 1987 with a degree in Mechanical Engineering, Mr. Klembczyk has held key positions in Sales, Engineering and Executive Management at Taylor Devices. Over the last 34 years, he has held titles such as Design Engineer, Assistant Chief Engineer, Chief Engineer, Vice President of Sales Engineering and was appointed President of the Company and member of the Board of Directors in 2018. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Klembczyk has been responsible for establishing new Sales Marketing policies and has been directly involved with defining internal Company policy and strategic direction in cooperation with all levels of Taylor Devices’ Management. He has been an integral part of the team that managed upgrades to the Quality System and obtaining third party certification to International Standards ISO 9001, ISO 14000 and Aerospace Standard AS9100. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Klembczyk has served for many years on the Technical Advisory Group for the US Shock and Vibration Information Analysis Center (SAVIAC) and the Shock and Vibration Exchange (SAVE). In 2019, he received the Distinguished Service Award from SAVE. Additionally, he has been a tutorial and course instructor for various organizations internationally and has participated in technical conferences and symposia. He is a founding member and first co-chair of the Industry Partner Committee of the US Resiliency Council. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>6 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Klembczyk has participated in many research projects for products for military aerospace, industrial, and structural applications. He has served as Program Manager for many of these projects and has worked with academia including the University at Buffalo’s MCEER: Earthquake Engineering to Extreme Events, among others. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>He has published several papers describing unique applications for structural dampers, tuned mass dampers, vibration isolators, shock absorbers, and shock isolators and holds US Patents for some of these components. These papers have been published by SAVE, SAVIAC, the Society for Experimental Mechanics (SEM) and the Applied Technology Council (ATC). </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Company believes that his wide-ranging roles throughout his career at the Company provide him with significant leadership, industry, marketing, and international experience, which qualify him to serve as a member of the Board of Directors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Class 2 Director Whose Term Will Expire in 2026 </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Timothy J. Sopko, </B> 58, is the Company’s Chief Executive Officer and has served as a director since 2020. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Sopko’s business experience spans more than thirty years in aerospace (military and civil), industrial as well as commercial markets with a primary focus in the areas of engineering, product development, program management, operations, and business management. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Prior to joining Taylor Devices as CEO in April 2019, Mr. Sopko was Vice President and General Manager of Carleton Technologies Inc. (d.b.a. Cobham Mission Systems) in Orchard Park, New York, a Department of Defense contractor. While there, he also held the positions of General Manager, Director of Engineering and Programs, Director of Engineering and Director of Business Development. Under Mr. Sopko’s leadership as VP and GM, Carleton successfully grew annual sales from $110m to over $200m. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>After nine years of Design Engineering and Program Management in industry (1988-1997), Mr. Sopko co-founded Comprehensive Technical Solutions Inc., which provides product design engineering services to companies across the United States as well as produces and supports a portfolio of internally funded products. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Sopko is a Mechanical Engineering graduate of The State University of New York at Buffalo where he was also a member of the University’s Mechanical and Aerospace Dean’s Advisory Board for over ten years. Mr. Sopko is also an author and/or co-author on several US Patents. The Company believes that Mr. Sopko’s knowledge and experience in various management positions within the industry make him qualified to serve on the Company’s Board of Directors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Executive Officer </B> </P> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Paul M. Heary, </B> 54, has served the Company as Chief Financial Officer since January 1, 2023. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Heary has over twenty years of experience serving in senior financial management positions for several public and privately owned middle market western New York manufacturers. Prior to joining Taylor Devices, Mr. Heary was Chief Financial Officer of Multisorb Filtration Group, a leader in sorbent technology serving pharmaceutical, food and industrial markets, from 2016 to 2022. At Multisorb, Mr. Heary played a key role in guiding the company through its 2018 sale from a private equity owner. From 2006 to 2016, he was the Senior Finance Director at Carleton Technologies (d.b.a Cobham Missions Systems), a global leader in technology for the aerospace and defense market. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Mr. Heary, who joined Taylor Devices in September 2022, has BS (Accounting) and MBA degrees from The State University of New York at Buffalo and previously held certifications for public and management accounting (CPA and CMA). </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>7 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'> <B> CORPORATE GOVERNANCE </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P style="font:10pt Times New Roman;margin:0"> <B> Board Committees and Meetings </B> </P> <P style="font:12pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>During the fiscal year ended May 31, 2024, the Board of Directors met five times with all the directors in attendance. All Board members traditionally attend the annual meeting of shareholders, notwithstanding that the Company does not have a policy with regard to attendance. All five Board members attended the Company's Annual Meeting of Shareholders held on October 20, 2023. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <I> The Executive Committee </I> , between meetings of the Board of Directors and to the extent permitted by law, exercises all the powers and authority of the Board in the management of the business of the Company. The Executive Committee is comprised of Messrs. Carey, Burgess and Armenat and chaired by Mr. Burgess. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <I> The Audit Committee </I> assists the Board of Directors with its oversight of the integrity of the Company's financial statements and internal controls, the Company's compliance with legal and regulatory requirements, the independent auditor's qualifications and independence and the performance of the Company's internal audit function and independent auditor. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Audit Committee, comprised of Messrs. Carey, Burgess and Armenat and chaired by Mr. Burgess, is governed by an Audit Committee Charter which was adopted by the Board of Directors. The Board of Directors has determined that Mr. Burgess is an “audit committee financial expert” as defined in Item 407(d)(5)(ii) of Regulation S-K. The Audit Committee met five times during the fiscal year ended May 31, 2024, with all members in attendance. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <I> The Compensation Committee </I> , comprised of Messrs. Carey, Burgess and Armenat and chaired by Mr. Armenat, reviews the compensation of the Company's executive officers, and makes recommendations in that regard to the Board as a whole. The Committee also administers the Company's stock option plans. The Compensation Committee met three times during the fiscal year ended May 31, 2024, with all members in attendance. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <I> The Nominating Committee, </I> comprised of Messrs. Carey, Burgess and Armenat and chaired by Mr. Carey, is responsible for identifying and evaluating individuals qualified to become Board members and recommending to the Board candidates to stand for election or re-election as directors. The Nominating Committee met twice during the fiscal year ended May 31, 2024, with all members in attendance. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The charters for the Company’s Audit, Compensation and Nominating Committees are available online at www.taylordevices.com/investors. Shareholders may also request a printed copy upon written request to: Mark V. McDonough, Corporate Secretary, Taylor Devices, Inc., 90 Taylor Drive, North Tonawanda, New York 14120. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <I> Independence. </I> Messrs. Carey, Burgess and Armenat are independent directors within the meaning of Rule 5605 of the applicable NASDAQ Capital Market listing standards. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Process for Identifying and Adding New Directors </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Nominating Committee is governed by the terms of its charter with respect to the consideration and selection of nominees proposed for election to the Board of Directors, including those recommended by shareholders. </P> <P style="font:12pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <I> The Criteria and Procedures. </I> </P> <P> justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Company strives to have a Board of Directors that will work diligently to promote the long-term interests of the Company and its shareholders. To that end, the Nominating Committee charter sets forth certain director qualification criteria (the Criteria) that the Nominating Committee and the Board believe are necessary for a director of the Company to possess and provides a description of the procedures to be followed when making a recommendation as to any nominee. So long as any director nominee proposed by shareholders meets the Criteria, the Nominating Committee will consider that nominee on the same basis as other candidates. The Criteria include integrity, reputation, judgment, knowledge, independence, experience and accomplishments, board interaction, commitment, skills, and long-term commitment to service on our Board. The Committee is required to apply the Criteria to candidates recommended by a Nominating Committee member, other directors, and management, as well as to any candidate meeting the Criteria recommended by shareholders. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>8 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'>During the selection process, the Nominating Committee seeks inclusion and diversity within the Board and adheres to the Company's policy of maintaining an environment free from discrimination based upon race, color, religion, national origin, sex, age, disability, sexual preference or orientation, marital status, or any other unlawful factor. The Board strives to nominate directors with a variety of complementary skills so that, as a group, the Board will possess the appropriate talent, skills, and expertise to oversee the Company's business. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>In addition, the Board assesses annually its overall effectiveness by means of a self-evaluation process. This evaluation includes, among other things, an assessment of the overall composition of the Board, including a discussion as to whether the Board has adequately considered diversity, among other factors, in identifying and discussing director candidates. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <I> The Evaluation Process. </I> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Nominating Committee charter also describes the process for identifying and evaluating nominees for director, including those nominated by shareholders. In each instance, the Nominating Committee assesses the Board's present composition based upon the Company's current and future needs. The selection of candidates is intended to provide the Board with an appropriate balance of expertise or experience in accounting and finance, technology, management, international business, compensation, corporate governance, strategy, industry knowledge and general business matters. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <I> Director Nominees. </I> </P> <P> justify style='font:10pt Times New Roman;margin:0;text-indent:36pt'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Board of Directors recommended Mr. John Burgess as the proposed Class 1 Director nominee and Mr. F. Eric Armenat as the proposed Class 1 Director nominee to stand for election by shareholders at this Annual Meeting. </P> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <I> Nominees by Shareholders </I> . </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Shareholders of the Company may make their suggestions for a director nominee to the entire Board of Directors or to any individual director, by a submission directed to the Company's Corporate Secretary's Office. The Corporate Secretary's Office will then forward the recommendation, together with all supporting documentation, to Mr. Carey, as Chairman of the Nominating Committee. Supporting documentation must include a detailed background of the proposed candidate and demonstrate how the candidate meets the Criteria. The Nominating Committee applies the same standards in considering nominees submitted by shareholders as it does in evaluating all other candidates. For details regarding the shareholder director nominee process, including applicable requirements under the Securities Exchange Act of 1934, as amended (the “Exchange Act”) and our by-laws, see “ <I> Shareholder Proposals and Director Nominations for the 2025 Annual Meeting </I> .” </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Communicating with the Board of Directors </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Although the Board of Directors does not have a formal procedure for shareholders to send communications to the Board of Directors, a shareholder may communicate with the Company at its website at www.taylordevices.com/about-us/investors. The Company will relay communications to directors if an express request to do so is included in the shareholder communication. </P> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <B> Code of Ethics </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>On August 23, 2003, the Company adopted a Code of Ethics (the Code) which is a compilation of written standards reasonably designed to deter wrongdoing and promote honest and ethical conduct. Code requirements include, among others, the preparation of full, fair, timely and understandable disclosure in documents that the Company files with and submits to the SEC; compliance with governmental laws, rules and regulations; prompt internal reporting of violations to the Code; and accountability for adherence to the Code. There have been no amendments to the Code since its adoption and it was re-adopted by the Board of Directors on March 12, 2020. </P> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <B> Board Leadership Structure </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Subsequent to the retirement of Douglas P. Taylor on May 31, 2018, the Board of Directors appointed long-time independent director John Burgess as Chairman of the Board. The Board also appointed Timothy J. Sopko as Chief Executive Officer in April 2019. In doing so, the Board believes that this is the most effective leadership structure for the Company and is in the best interests of its shareholders. The Board believes that Messrs. Burgess and Sopko are best suited to serve in their respective roles because their collective knowledge and experience within the industry will allow them to identify strategic priorities and opportunities, and thus, more effectively execute the Company's strategy and achieve long-term success. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>9 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Board Risk Oversight </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Risk management is primarily the responsibility of the Company's management; however, the Board has responsibility for overseeing management's identification and management of those risks. The Board considers risks in making significant business decisions and as part of the Company's overall business strategy. The Board and its committees, as appropriate, discuss and receive periodic updates from senior management regarding significant risks, if any, to the Company in connection with the annual review of the Company's business plan and its review of budgets, strategy, and major transactions. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Each Board committee assists the Board in overseeing management of the Company's risks within the areas delegated to that committee, and is tasked with reporting to the full Board, as appropriate. The Audit Committee is responsible for risks relating to its review of the Company's financial statements and financial reporting processes, the evaluation of the effectiveness of internal control over financial reporting, and compliance with legal and regulatory requirements. The Compensation Committee is responsible for monitoring risks associated with the design and administration of the Company's compensation programs. The Nominating Committee oversees risk as it relates to the Company's director selection processes. Each committee has full access to management. In addition, the Audit Committee meets regularly with the Company's independent auditors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Report of the Audit Committee for the Fiscal Year Ended May 31, 2024 </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The information contained in this Audit Committee Report shall not be deemed to be soliciting material or deemed to be filed with or incorporated by reference in filings with the U.S. Securities and Exchange Commission (SEC), or subject to the liabilities of Section 18 of the Exchange Act. </P> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> As required by the terms of the Audit Committee Charter, the undersigned members of the Audit Committee have: </P> <P> justify style='font:10pt Times New Roman;margin:0;text-indent:22.5pt'> </P> <TABLE> border-collapse:collapse;margin-left:18.9pt> <TR> <TD> top style=width:22.5pt> <P> justify style='font:10pt Times New Roman;margin:0'>1. </P> </TD> <TD> top style=width:437.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>Reviewed and discussed the Company's audited financial statements with management of the Company; </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:22.5pt> <P> justify style='font:10pt Times New Roman;margin:0'>2. </P> </TD> <TD> top style=width:437.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>Reviewed and discussed with the Company's independent registered public accounting firm the matters required to be discussed by the Public Company Accounting Oversight Board Auditing Standards No. 16 (Communication with Audit Committees); </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:22.5pt> <P> justify style='font:10pt Times New Roman;margin:0'>3. </P> </TD> <TD> top style=width:437.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>Received the written disclosures and the letter from Lumsden McCormick, LLP, as required by the Public Company Accounting Oversight Board regarding Lumsden McCormick's communications with the Audit Committee concerning independence, and has discussed with Lumsden McCormick their independence; and </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:22.5pt> <P> justify style='font:10pt Times New Roman;margin:0'>4. </P> </TD> <TD> top style=width:437.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>Based on the foregoing, the Audit Committee has recommended to the Company's Board of Directors that the Company's audited financial statements be included in its Annual Report on Form 10-K for the fiscal year ended May 31, 2024 for filing with the SEC. </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse;margin-left:45.9pt> <TR> <TD> top style=width:193.5pt> <P> justify style='font:10pt Times New Roman;margin:0'>Respectfully submitted, </P> <P> justify style='font:10pt Times New Roman;margin:0'>John Burgess </P> <P> justify style='font:10pt Times New Roman;margin:0'>F. Eric Armenat </P> <P> justify style='font:10pt Times New Roman;margin:0'>Robert M. Carey </P> </TD> <TD> top style=width:239.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> </TABLE> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>10 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'>[THIS PAGE INTENTIONALLY LEFT BLANK] </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>11 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P style="font:10pt Times New Roman;margin:0"> <B> Director Compensation –Fiscal Year Ended May 31, 2024 </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Chairman of the Board of Directors receives an $11,000 quarterly retainer fee and the other two non-employee members of the Board of Directors receive a $7,000 quarterly retainer fee. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Audit Committee meets independently of the Board of Directors not less than five times each year. Each committee member receives a fee of $2,000 per committee meeting. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Nominating Committee meets independently of the Board of Directors not less than twice a year. Each committee member receives a fee of $1,000 per committee meeting. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Compensation Committee meets independently of the Board of Directors not less than twice a year. Each committee member receives a fee of $1,000 per committee meeting. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Pursuant to the formula set forth in the 2022 Taylor Devices, Inc. Stock Option Plan, on April 18, 2024, the fixed date of the grant, each director and the Company's Chief Financial Officer were granted options to purchase 7,000 shares of the Company's common stock. The exercise price was $46.99, which was the fair market value for a share of common stock on the date of grant under the 2022 Plan. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P style="font:10pt Times New Roman;margin:0"> <B> Director Compensation Table </B> </P> <P style="font:12pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> The following table provides the compensation of the Company’s non-employee directors for the fiscal year ended May 31, 2024: </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse;width:468pt;margin-left:1.45pt> <TR> <TD> top style='width:99pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> <B> Name </B> </P> </TD> <TD> top style='width:45pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P style="font:9pt Times New Roman;margin:0"/> <P> center style='font:9pt Times New Roman;margin:0'> <B> Fees earned </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> or </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> paid in cash </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:39.95pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> Stock </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> awards </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:45pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> Option awards </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> ($) <SUP> (1) </SUP> </B> </P> </TD> <TD> top style='width:63pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P style="font:9pt Times New Roman;margin:0"/> <P> center style='font:9pt Times New Roman;margin:0'> <B> Non-equity incentive plan compensation ($) </B> </P> </TD> <TD> top style='width:63pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> Nonqualified deferred compensation earnings </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:63pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"/> <P style="font:9pt Times New Roman;margin:0"/> <P style="font:9pt Times New Roman;margin:0"/> <P style="font:9pt Times New Roman;margin:0"/> <P style="font:9pt Times New Roman;margin:0"/> <P> center style='font:9pt Times New Roman;margin:0'> <B> All other compensation </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:50.05pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> Total </B> </P> <P> center style='font:9pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> </TR> <TR> <TD> top style='width:99pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'>John Burgess </P> </TD> <TD> top style='width:45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$59,000 </P> </TD> <TD> top style='width:39.95pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$121,433 </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:50.05pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$180,433 </P> </TD> </TR> <TR> <TD> top style='width:99pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'>F. Eric Armenat </P> </TD> <TD> top style='width:45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$43,000 </P> </TD> <TD> top style='width:39.95pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$121,433 </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:50.05pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$164,433 </P> </TD> </TR> <TR> <TD> top style='width:99pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'>Robert M. Carey </P> </TD> <TD> top style='width:45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$43,000 </P> </TD> <TD> top style='width:39.95pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$121,433 </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:12pt Times New Roman;margin:0'> <FONT> font-size:9pt>- </FONT> </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:50.05pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>$164,433 </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>(1) Assumptions made in the valuation of option awards are described in Note 13, “Stock Option Plans,” to the Company's Consolidated Financial Statements included in the Company's Annual Report to Shareholders accompanying this Proxy Statement. Mr. Burgess, Mr. Armenat and Mr. Carey had an aggregate of 54,000, 34,000 and 24,000 option awards outstanding as of May 31, 2024, respectively. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>12 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'> <B> EXECUTIVE COMPENSATION </B> </P> <P style="font:12pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <B> Overview of Compensation Program </B> </P> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>The primary purpose of the Compensation Committee is to annually review and approve the Company's overall compensation philosophy and establish corporate goals and objectives consistent with that philosophy. </P> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <B> Duties and Responsibilities </B> </P> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>In keeping with its primary purpose, the Compensation Committee annually evaluates the performance of the Company's executive officers, determines and approves the compensation of the CEO, including individual elements of salary, bonus, supplemental retirement, incentive and equity compensation, and determines and approves executive officer (non-CEO) compensation, incentive compensation plans and equity-based plans. In its deliberations, the Compensation Committee considers Company performance, compensation at comparable companies, past years' compensation to the Company's executive officers and other relevant factors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P style="font:10pt Times New Roman;margin:0"> <B> Summary Compensation Table </B> </P> <P style="font:12pt Times New Roman;margin:0"/> <P style="font:12pt Times New Roman;margin:0"> <FONT> font-size:10pt>The following table sets forth compensation paid to or earned by the Company's Chief Executive Officer, President and Chief Financial Officer for fiscal years 2024 and 2023. </FONT> </P> <P style="font:12pt Times New Roman;margin:0"/> <TABLE> border-collapse:collapse;width:487.8pt;margin-left:-3.05pt> <TR> <TD> top style='width:90pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> justify style='font:8pt Times New Roman;margin:0'> <A> _Hlk143705375 /> </A> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"> <B> Name and </B> </P> <P style="font:8pt Times New Roman;margin:0"> <B> principal position </B> </P> </P> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Year </B> </P> </TD> <TD> top style='width:42.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Salary </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:45pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Bonus </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) <SUP> (1) </SUP> </B> </P> </TD> <TD> top style='width:36pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Stock </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> awards </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:44.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Option </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> awards </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) <SUP> (2) </SUP> </B> </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Nonequity </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> incentive plan </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> compensation </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> bottom style='width:50.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> <B> Nonqualified </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> deferred </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> compensation </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> earnings </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:52.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> All other </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> compensation </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:40.5pt;padding-left:0.7pt;padding-right:0.7pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Total </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> </TD> <TR> <TD> top style='width:90pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Timothy J. Sopko </P> <P style="font:9pt Times New Roman;margin:0"> Chief Executive Officer </P> </TD> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>2024 </P> <P> center style='font:9pt Times New Roman;margin:0'>2023 </P> </TD> <TD> top style='width:42.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$300,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>$257,500 </P> </TD> <TD> top style='width:45pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$307,863 </P> <P> center style='font:9pt Times New Roman;margin:0'>$181,242 </P> </TD> <TD> top style='width:36pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:44.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$121,433 </P> <P> right style='font:9pt Times New Roman;margin:0'>$47,017 </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:50.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:52.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$26,608 </P> <P> right style='font:9pt Times New Roman;margin:0'>$24,071 </P> </TD> <TD> top style='width:40.5pt;padding-left:0.7pt;padding-right:0.7pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$755,904 </P> <P> right style='font:9pt Times New Roman;margin:0'>$509,830 </P> </TD> </TR> <TR> height:22.65pt> <TD> top style='width:90pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Alan R. Klembczyk </P> <P style="font:9pt Times New Roman;margin:0"> President </P> </TD> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>2024 </P> <P> center style='font:9pt Times New Roman;margin:0'>2023 </P> </TD> <TD> top style='width:42.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$242,050 </P> <P> center style='font:9pt Times New Roman;margin:0'>$242,050 </P> </TD> <TD> top style='width:45pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$248,394 </P> <P> center style='font:9pt Times New Roman;margin:0'>$170,368 </P> </TD> <TD> top style='width:36pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:44.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$121,433 </P> <P> right style='font:9pt Times New Roman;margin:0'>$47,017 </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:50.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:52.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$14,737 </P> <P> right style='font:9pt Times New Roman;margin:0'>$10,433 </P> </TD> <TD> top style='width:40.5pt;padding-left:0.7pt;padding-right:0.7pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$626,614 </P> <P> right style='font:9pt Times New Roman;margin:0'> $469,868 </P> </TD> </TR> <TR> <TD> top style='width:90pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Paul M Heary </P> <P style="font:9pt Times New Roman;margin:0"> Chief Financial Officer </P> </TD> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>2024 </P> <P> center style='font:9pt Times New Roman;margin:0'>2023 </P> </TD> <TD> top style='width:42.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$231,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>$165,000 </P> </TD> <TD> top style='width:45pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$237,054 </P> <P> center style='font:9pt Times New Roman;margin:0'>$116,135 </P> </TD> <TD> top style='width:36pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:44.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$121,433 </P> <P> right style='font:9pt Times New Roman;margin:0'>$47,017 </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:50.2pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:52.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$12,877 </P> <P> right style='font:9pt Times New Roman;margin:0'>$5,415 </P> </TD> <TD> top style='width:40.5pt;padding-left:0.7pt;padding-right:0.7pt;border:0.5pt solid #000000'> <P> right style='font:9pt Times New Roman;margin:0'>$602,364 </P> <P> right style='font:9pt Times New Roman;margin:0'>$333,566 </P> </TD> </TR> </TR> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>(1) Pursuant to its Management Bonus Policy, for the fiscal year ended May 31, 2024, the Company paid bonuses to the executive officers named in the Summary Compensation Table above. Under the policy, the Compensation Committee may approve payment for performance based on an amount, calculated in the aggregate for all participants, and of no more than 15% of net income of the Company for the fiscal year then ended. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>(2) Option awards include 7,000 options awarded to Mr. Sopko in 2024 and 2023; 7,000 options awarded to Mr. Klembczyk in 2024 and 2023; and 7,000 options awarded to Mr. Heary in 2024 and 2023. See also the information under the heading “Security Ownership of Certain Beneficial Owners and Management.” Assumptions made in the valuation of option awards are described in Note 13, “Stock Option Plans,” to the Company's Consolidated Financial Statements included in the Company's Annual Report to Shareholders accompanying this Proxy Statement. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>13 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P style="font:10pt Times New Roman;margin:0"> Outstanding Equity Awards at Fiscal 2024 Year-End </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The following table sets forth information regarding unexercised stock options held by the Company’s executive officers named in the Summary Compensation Table. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse;width:524.2pt;margin-left:-12.6pt> <TR> <TD> top style='width:79.85pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'> <B> Name </B> </P> </TD> <TD> 5 valign=top style='width:444.35pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> <B> Option Awards </B> </P> </TD> </TR> <TR> <TD> top style='width:79.85pt;padding-left:0.7pt;padding-right:5.75pt;border:0.5pt solid #000000'> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P> justify style='font:8pt Times New Roman;margin:0'> </P> <P> justify style='font:8pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style='width:57.35pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Number of securities underlying unexercised options </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> (#) </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> exercisable </B> </P> </TD> <TD> bottom style='width:67.5pt;padding-left:0.7pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Number of securities underlying unexercised options </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> (#) unexercisable </B> </P> </TD> <TD> bottom style='width:112.5pt;padding-left:0.7pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Equity incentive plan awards: Number of securities underlying unexercised </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> unearned options </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> (#) </B> </P> </TD> <TD> bottom style='width:85.5pt;padding-left:0.7pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Option exercise price </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> bottom style='width:121.5pt;padding-left:0.7pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Option expiration date </B> </P> </TD> </TR> <TR> <TD> top style='width:79.85pt;padding-left:0.7pt;padding-right:0.7pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'>Timothy J. Sopko </P> </TD> <TD> top style='width:57.35pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>5,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>5,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>5,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>7,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>7,000 </P> </TD> <TD> middle style='width:67.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> </TD> <TD> middle style='width:112.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:85.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$ 9.8500 </P> <P> center style='font:9pt Times New Roman;margin:0'>$11.9500 </P> <P> center style='font:9pt Times New Roman;margin:0'>$ 9.5250 </P> <P> center style='font:9pt Times New Roman;margin:0'>$19.9550 </P> <P> center style='font:9pt Times New Roman;margin:0'>$46.9926 </P> </TD> <TD> top style='width:121.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>04/18/30 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/22/31 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/32 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/33 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/34 </P> </TD> </TR> <TR> height:21.75pt> <TD> top style='width:79.85pt;padding-left:0.7pt;padding-right:0.7pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'> </P> <P> justify style='font:9pt Times New Roman;margin:0'>Alan R. Klembczyk </P> </TD> <TD> top style='width:57.35pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>3,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>3,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>3,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>5,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>5,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>5,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>5,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>7,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>7,000 </P> </TD> <TD> top style='width:67.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:112.5pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"/> <P style="font:9pt Times New Roman;margin:0"/> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:85.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$12.8000 </P> <P> center style='font:9pt Times New Roman;margin:0'>$19.2550 </P> <P> center style='font:9pt Times New Roman;margin:0'>$12.2792 </P> <P> center style='font:9pt Times New Roman;margin:0'>$11.9750 </P> <P> center style='font:9pt Times New Roman;margin:0'>$ 9.8500 </P> <P> center style='font:9pt Times New Roman;margin:0'>$11.9500 </P> <P> center style='font:9pt Times New Roman;margin:0'>$ 9.5250 </P> <P> center style='font:9pt Times New Roman;margin:0'>$19.9550 </P> <P> center style='font:9pt Times New Roman;margin:0'>$46.9926 </P> </TD> <TD> top style='width:121.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>08/12/25 </P> <P> center style='font:9pt Times New Roman;margin:0'>08/03/26 </P> <P> center style='font:9pt Times New Roman;margin:0'>08/04/27 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/29 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/30 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/22/31 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/32 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/33 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/34 </P> </TD> </TR> <TR> height:21.75pt> <TD> top style='width:79.85pt;padding-left:0.7pt;padding-right:0.7pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'>Paul M. Heary </P> </TD> <TD> top style='width:57.35pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>7,000 </P> <P> center style='font:9pt Times New Roman;margin:0'>7,000 </P> </TD> <TD> top style='width:67.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:112.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> <P> center style='font:9pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:85.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$19.9550 </P> <P> center style='font:9pt Times New Roman;margin:0'>$46.9926 </P> </TD> <TD> top style='width:121.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>04/18/33 </P> <P> center style='font:9pt Times New Roman;margin:0'>04/18/34 </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Pay vs. Performance </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>As required by Section 953(a) of the Dodd-Frank Wall Street Reform and Consumer Protection Act and Item 402(v) of Regulation S-K, we are providing the following information about the relationship between executive compensation actually paid (as defined by SEC rules) and certain financial and operational performance of the Company. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Compensation Committee did not consider the pay versus performance disclosure when making its compensation decisions for the 2024 fiscal year. As required by Item 402(v) of Regulation S-K, we are providing the following information about the relationship between executive compensation actually paid and certain financial and operational performance of the Company for each of the last three completed fiscal years. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The table below summarizes compensation values reported in our Summary Compensation Table, as well as the adjusted values required in this section for the fiscal years ended May 31, 2024, 2023 and 2022. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>14 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P style="font:10pt Times New Roman;margin:0"> <B> Pay versus Performance Tables </B> </P> <P style="font:12pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse;width:412.3pt;margin-left:-3.05pt> <TR> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:68.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Summary Compensation Table Total for PEO </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) <SUP> (1) </SUP> </B> </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Compensation Actually Paid to PEO </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Average Summary Compensation Table Total for Non-PEO Named Executive Officers </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) <SUP> (2) </SUP> </B> </P> </TD> <TD> top style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Average Compensation Actually Paid to Non-PEO Named Executive Officers </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> <B> Value of Initial Fixed $100 Investment Based On Total Shareholder Return </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> Net Income (Loss) </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>2024 </P> </TD> <TD> top style='width:68.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$755,904 </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$755,904 </P> </TD> <TD> top style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$614,489 </P> </TD> <TD> top style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$614,489 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$526 </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$8,998,762 </P> </TD> </TR> <TR> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>2023 </P> </TD> <TD> top style='width:68.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$509,830 </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$509,830 </P> </TD> <TD> top style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$360,991 </P> </TD> <TD> top style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$360,991 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$198 </P> </TD> <TD> top style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$6,287,358 </P> </TD> </TR> <TR> <TD> top style='width:33.3pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>2022 </P> </TD> <TD> bottom style='width:68.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$354,927 </P> </TD> <TD> bottom style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$354,927 </P> </TD> <TD> bottom style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$313,026 </P> </TD> <TD> bottom style='width:72pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$313,026 </P> </TD> <TD> bottom style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$78 </P> </TD> <TD> bottom style='width:54pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$2,239,423 </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>(1) Mr. Sopko was our principal executive officer (“PEO”) for the fiscal years ended May 31, 2024, 2023 and 2022. </P> <P> justify style='font:10pt Times New Roman;margin:0'>(2) The non-PEO named executive officers for whom the average compensation is presented in these tables are Alan R. Klembczyk, Paul M. Heary and Mark V. McDonough. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse;width:520.3pt;margin-left:-3.05pt> <TR> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> 2024 PEO </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:8pt Times New Roman;margin:0"/> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> 2023 PEO </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> bottom style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> <B> 2022 PEO </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> bottom style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> 2024 Non-PEO Named Executive Officer </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> bottom style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> 2023 Non-PEO Named Executive Officer </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> <TD> bottom style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:8pt Times New Roman;margin:0'> <B> 2022 Non-PEO Named Executive Officer </B> </P> <P> center style='font:8pt Times New Roman;margin:0'> <B> ($) </B> </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Total Compensation from Summary Compensation Table </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$755,904 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$509,830 </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$354,927 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$614,489 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$360,991 </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$313,026 </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Subtract: Grant date fair value or equity awards granted during the covered year </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$(121,433) </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$(47,017) </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$(12,586) </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$(121,433) </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$(33,584) </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$(12,586) </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Add: Fair value as of end of covered year of equity awards granted during covered year that were outstanding and unvested as of end of covered year </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Add: Change in fair value from end or prior year to end of current year for equity awards granted in prior years that were outstanding and unvested at end of current year </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Add: Fair value as of vesting date of equity awards that were granted and vested in same year </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$121,433 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$47,017 </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$12,586 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$121,433 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$33,584 </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$12,586 </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Add: Change in fair value from end of prior year to vesting date of equity awards granted in prior years that vested in covered year </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> justify style='font:9pt Times New Roman;margin:0'>Subtract: Fair value at end of prior year of equity awards granted in prior years that failed to vest (forfeited) in covered year </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> </TR> <TR> height:3.25pt> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Add: Dollar amount of dividends or other earnings paid on equity awards in covered year prior to vesting date that are not included in total compensation for covered year </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>- </P> </TD> </TR> <TR> <TD> top style='width:164.8pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P style="font:9pt Times New Roman;margin:0"> Compensation actually paid </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$755,904 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$509,830 </P> </TD> <TD> top style='width:58.5pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$354,927 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$614,489 </P> </TD> <TD> top style='width:58.5pt;padding-left:1.45pt;padding-right:1.45pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$360,991 </P> </TD> <TD> top style='width:63pt;border:0.5pt solid #000000'> <P> center style='font:9pt Times New Roman;margin:0'>$313,026 </P> </TD> </TR> </TABLE> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>15 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Charts of Compensation Actually Paid (“CAP”) Versus Performance Metrics </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The chart below illustrates the relationship between the PEO and average non-PEO NEO CAP amounts and the Company’s total shareholder return (“TSR”) during fiscal years 2022, 2023 and 2024. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <IMG> tddef14a_2.jpg width=631 height=306> </IMG> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0;color:#000000'> <FONT> background-color:#FFFFFF>The chart below illustrates the relationship between the PEO and Non-PEO NEO CAP amounts and the Company’s net income du </FONT> ring fiscal years 2022, 2023 and 2024. </P> <P> justify style='font:10pt Times New Roman;margin:0;color:#000000'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <IMG> tddef14a_3.jpg width=631 height=306> </IMG> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>16 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Employment and Change in Control Agreements </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>As of August 9, 2021, Mr. Sopko, as of June 1, 2018, Mr. Klembczyk, and, as of September 11, 2023, Mr. Heary (each, an Executive) entered into Employment Agreements with the Company (together, the Employment Agreements). By their terms, the Employment Agreements will automatically renew each year after the date of this agreement (the “Initial Term”) provided however, that either party may elect not to renew the Employment Agreement for any Renewal Period by providing 90 days written notice of such election prior to the end of the Initial Term or any Renewal Period. The Company may terminate the employment of an Executive in its absolute discretion, without Cause (as defined in the applicable Agreement), and for any reason. The Executive may terminate their respective Employment Agreement and his employment at any time and for Good Reason (as defined in the applicable Employment Agreement). </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>Each Agreement provides for the payment of a severance package of (i) the continuation of the Executive’s base salary for a period of 12 months and (ii) if, the Executive makes a valid election pursuant to the Consolidated Omnibus Budget Reconciliation Act of 1985, as amended (COBRA) for continuation of health insurance under the applicable Company plan, reimbursement of premiums for such coverage for a period of up to 12 months. If the Agreement is not renewed by the Executive, no severance package shall be paid. If the Agreement is not renewed by the Company, the Executive is entitled to the severance package. Each Executive has agreed to a non-competition clause for 12 months after termination of employment with the Company, in any location where the Company has made sales within the five years preceding termination. </P> <P> justify style='font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt'>Under the Employment Agreements, the Company agrees to pay Messrs. Sopko, Klembczyk and Heary base salaries of $320,000, $242,050 and $238,000 per year, respectively, subject to increase at the discretion of the Board, and the Executives are eligible for an incentive bonus based on Company performance as approved by the Board of Directors. </P> <P style="font:12pt Times New Roman;margin:0"> <FONT> font-size:10pt> <B> Security Ownership of Certain Beneficial Owners and Management </B> </FONT> </P> <P style="font:12pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>The following table sets forth certain information regarding the beneficial ownership of the Company's common stock as of August 26, 2024, with respect to (i) each of the Company's directors and nominees for director, (ii) each executive officer named in the Summary Compensation Table and (iii) all the directors and executive officers as a group. As of August 26, 2024, there were no individuals that beneficially owned more than 5% of the Company’s common stock. All information is based solely upon ownership filings made by such persons with the Securities and Exchange Commission, or upon information provided by such persons to the Company. The business address of each of the executive officers and directors is 90 Taylor Drive, North Tonawanda, New York 14120. </P> <TABLE> border-collapse:collapse;margin-left:-0.6pt> <TR> <TD> 2 valign=bottom style='width:158.3pt;border-bottom:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0"> <B> Management </B> </P> </TD> <TD> bottom style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> 2 valign=bottom style='width:126pt;border-bottom:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> <B> Number of Shares </B> </P> </TD> <TD> bottom style=width:26.55pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> 2 valign=bottom style='width:128.95pt;border-bottom:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> <B> Percentage of Common Stock Owned </B> </P> </TD> <TD> bottom style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style='width:158.3pt;border-top:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style='width:67.5pt;border-top:0.5pt solid #000000'> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:58.5pt;border-top:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"> John Burgess </P> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'>89,000 </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"> (1) </P> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'>2.68 </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"> Alan R. Klembczyk </P> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'>45,123 </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"> (1) </P> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'>1.36 </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"> Timothy J. Sopko </P> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'>37,000 </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"> (1) </P> </TD> <TD> top style=width:26.55pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'>1.12 </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"> F. Eric Armenat </P> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'>34,000 </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"> (1) </P> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'>1.03 </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"> Robert M. Carey </P> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'>29,000 </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"> (1) </P> </TD> <TD> top style=width:26.55pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'>0.87 </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"> Paul M. Heary </P> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:67.5pt> <P> right style='font:10pt Times New Roman;margin:0'>22,820 </P> </TD> <TD> top style=width:58.5pt> <P style="font:10pt Times New Roman;margin:0"> (1) </P> </TD> <TD> top style=width:26.55pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> 2 valign=top style=width:128.95pt> <P> center style='font:10pt Times New Roman;margin:0'>0.69 </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style='width:67.5pt;border-bottom:0.5pt solid #000000'> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:58.5pt;border-bottom:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style='width:128.95pt;border-bottom:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> <TD> 2 valign=top style=width:158.3pt> <P style="font:10pt Times New Roman;margin:0"> <B> All of the Directors and Executive Officers as a group </B> </P> </TD> <TD> top style=width:27.1pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style='width:67.5pt;border-top:0.5pt solid #000000'> <P> right style='font:10pt Times New Roman;margin:0'> <B> 256,943 </B> </P> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:58.5pt;border-top:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"/> </TD> <TD> top style=width:26.55pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style='width:128.95pt;border-top:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> <B> 7.75 </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.9pt> <P style="font:10pt Times New Roman;margin:0"/> </TD> </TR> <TR> height:21.6pt> <TD> 2 valign=top style=width:26.5pt> <P> justify style='font:10pt Times New Roman;margin:0'>(1) </P> </TD> <TD> 6 valign=top style=width:440.45pt> <P> justify style='font:10pt Times New Roman;margin:0'>Includes options granted to directors and officers which have not been exercised: 54,000 by Mr. Burgess, 32,000 by Mr. Armenat, 43,000 by Mr. Klembczyk, 29,000 by Mr. Sopko, 24,000 by Mr. Carey and 14,000 by Mr. Heary. </P> </TD> </TR> </TABLE> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>17 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Indemnification Insurance for Directors and Officers </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>On August 23, 2024, the Company purchased a director and officer indemnification insurance policy written by the Cincinnati Insurance Company. The renewal was for a one-year period at an annual premium of $60,622. The policy provides indemnification benefits and the payment of expenses in actions instituted against any director or officer of the Company for claimed liability arising out of his conduct in such capacities. No payments or claims for indemnification or expenses have been made under any directors' and officers' insurance policies purchased by the Company. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Company has entered into Indemnity Agreements with its directors and certain officers. Although the Company's by-laws and the New York Business Corporation Law (the BCL) authorize the Company to indemnify directors and officers, neither require the directors and officers to be indemnified during the pendency of litigation or specify the times at which the Company is obligated to reimburse an indemnified person for expenses. The Indemnity Agreements provide that the Company will advance litigation expenses to the person indemnified while the action is pending, upon the indemnified person's assurance (as required by the BCL) that the advance will be returned if the indemnified person is ultimately found not to be entitled to it. </P> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> <B> Equity Compensation Plan Information </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The following table sets forth information regarding equity compensation plans of the Company as of May 31, 2024. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse> <TR> height:13.35pt> <TD> 2 valign=top style='width:23.4pt;border-top:1.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:132.2pt;border-top:1.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:11.8pt;border-top:1.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 5 valign=top style='width:311.4pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Equity Compensation Plan Information </B> </P> </TD> </TR> <TR> height:95.25pt> <TD> 3 valign=top style='width:155.6pt;border-bottom:1.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P style="font:10pt Times New Roman;margin:0"> Plan Category </P> </TD> <TD> top style=width:11.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:96.2pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"/> <P> center style='font:10pt Times New Roman;margin:0'>Number of securities to be issued upon exercise of outstanding options, warrants, and rights </P> <P> center style='font:10pt Times New Roman;margin:0'> <I> (a) </I> </P> </TD> <TD> top style='width:11.8pt;border-top:1.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:87.2pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'>Weighted-average exercise price of outstanding options, warrants and rights </P> <P> center style='font:10pt Times New Roman;margin:0'> <I> (b) </I> </P> </TD> <TD> top style='width:11.8pt;border-top:1.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:104.4pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'>Number of securities remaining available for future issuance under equity compensation plans (excluding securities reflected in column <I> (a) </I> ) </P> <P> center style='font:10pt Times New Roman;margin:0'> <I> (c) </I> </P> </TD> </TR> <TR> <TD> 3 valign=top style='width:155.6pt;border-top:1.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0"> Equity compensation plans approved by security holders </P> </TD> <TD> top style=width:11.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:96.2pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:87.2pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:104.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:14.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:141.2pt> <P style="font:10pt Times New Roman;margin:0"> 2012 Stock Option Plan </P> <P style="font:10pt Times New Roman;margin:0"> 2015 Stock Option Plan </P> <P style="font:10pt Times New Roman;margin:0"> 2018 Stock Option Plan </P> <P style="font:10pt Times New Roman;margin:0"> 2022 Stock Option Plan </P> </TD> <TD> top style=width:11.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style=width:96.2pt> <P> right style='font:10pt Times New Roman;margin:0'>24,500 </P> <P> right style='font:10pt Times New Roman;margin:0'>59,250 </P> <P> right style='font:10pt Times New Roman;margin:0'>130,250 </P> <P> right style='font:10pt Times New Roman;margin:0'>126,500 </P> </TD> <TD> top style=width:11.8pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:87.2pt> <P> center style='font:10pt Times New Roman;margin:0'>$14.02 </P> <P> center style='font:10pt Times New Roman;margin:0'>$12.42 </P> <P> center style='font:10pt Times New Roman;margin:0'>$10.82 </P> <P> center style='font:10pt Times New Roman;margin:0'>$28.97 </P> </TD> <TD> top style=width:11.8pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style=width:104.4pt> <P> right style='font:10pt Times New Roman;margin:0'>- </P> <P> right style='font:10pt Times New Roman;margin:0'>- </P> <P> right style='font:10pt Times New Roman;margin:0'>- </P> <P> right style='font:10pt Times New Roman;margin:0'>116,000 </P> </TD> </TR> <TR> height:20.25pt> <TD> 3 valign=top style=width:155.6pt> <P style="font:10pt Times New Roman;margin:0"> Equity compensation plans not approved by security holders </P> </TD> <TD> top style=width:11.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style=width:96.2pt> <P> right style='font:10pt Times New Roman;margin:0'> </P> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.8pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:87.2pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:11.8pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style=width:104.4pt> <P> right style='font:10pt Times New Roman;margin:0'> </P> </TD> </TR> <TR> <TD> top style=width:14.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> 2 valign=top style=width:141.2pt> <P style="font:10pt Times New Roman;margin:0"> 2004 Employee Stock Purchase Plan (1) </P> </TD> <TD> top style=width:11.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style='width:96.2pt;border-bottom:1.5pt solid #000000'> <P> right style='font:10pt Times New Roman;margin:0'> </P> <P> right style='font:10pt Times New Roman;margin:0'>- </P> </TD> <TD> top style=width:11.8pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:87.2pt;border-bottom:1.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'>- </P> </TD> <TD> top style=width:11.8pt> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style='width:104.4pt;border-bottom:1.5pt solid #000000'> <P> right style='font:10pt Times New Roman;margin:0'> </P> <P> right style='font:10pt Times New Roman;margin:0'>215,993 </P> </TD> </TR> <TR> <TD> 3 valign=top style='width:155.6pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'>Total </P> </TD> <TD> top style='width:11.8pt;border-bottom:1.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style='width:96.2pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P> right style='font:10pt Times New Roman;margin:0'>340,500 </P> </TD> <TD> top style='width:11.8pt;border-bottom:1.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:87.2pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P> center style='font:12pt Times New Roman;margin:0'> </P> </TD> <TD> top style='width:11.8pt;border-bottom:1.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> bottom style='width:104.4pt;border-top:1.5pt solid #000000;border-bottom:1.5pt solid #000000'> <P> right style='font:10pt Times New Roman;margin:0'>331,993 </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse> <TR> <TD> top style=width:23.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>(1) </P> </TD> <TD> top style=width:509.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>The Company's 2004 Employee Stock Purchase Plan permits eligible employees to purchase shares of the Company's common stock at fair market value through payroll deductions and without brokers' fees. Such purchases are without any contribution on the part of the Company. </P> </TD> </TR> </TABLE> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> TRANSACTIONS WITH RELATED PERSONS </B> </P> <P style="font:12pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>None. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>18 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'> <B> BOARD DIVERSITY MATRIX </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P style="font:10pt Times New Roman;margin:0"> Under Nasdaq’s board diversity rule, the Company is required to publicly disclose certain diversity statistics regarding our Board of Directors. Those statistics are shown below. We have omitted categories that were not selected by any director. </P> <P style="font:10pt Times New Roman;margin:0"/> <TABLE> center style=border-collapse:collapse;width:454pt> <TR> height:15pt> <TD> 3 valign=bottom style='width:454pt;border:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>Board Diversity Matrix (As of August 22, 2024) </P> </TD> </TR> <TR> height:15pt> <TD> bottom style='width:339.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0;color:#000000"> Total Number of Directors </P> </TD> <TD> 2 valign=middle style='width:114.8pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>5 </P> </TD> </TR> <TR> height:15pt> <TD> bottom bgcolor=#D9D9D9 style='width:339.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0;color:#000000"> Part I: Gender Identity </P> </TD> <TD> middle bgcolor=#D9D9D9 style='width:60.2pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>Female </P> </TD> <TD> middle bgcolor=#D9D9D9 style='width:54.6pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>Male </P> </TD> </TR> <TR> height:15pt> <TD> bottom style='width:339.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0;color:#000000"> Directors </P> </TD> <TD> middle style='width:60.2pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>0 </P> </TD> <TD> middle style='width:54.6pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>5 </P> </TD> </TR> <TR> height:15pt> <TD> bottom bgcolor=#D9D9D9 style='width:339.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0;color:#000000"> Part II: Demographic Background </P> </TD> <TD> middle bgcolor=#D9D9D9 style='width:60.2pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'> </P> </TD> <TD> middle bgcolor=#D9D9D9 style='width:54.6pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'> </P> </TD> </TR> <TR> height:15pt> <TD> bottom style='width:339.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0;color:#000000"> White </P> </TD> <TD> middle style='width:60.2pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>0 </P> </TD> <TD> middle style='width:54.6pt;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>5 </P> </TD> </TR> <TR> height:15pt> <TD> bottom style='width:339.2pt;border-left:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P style="font:10pt Times New Roman;margin:0;color:#000000"> Military Veterans </P> </TD> <TD> 2 valign=middle style='width:114.8pt;border-top:0.5pt solid #000000;border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000'> <P> center style='font:10pt Times New Roman;margin:0;color:#000000'>3 </P> </TD> </TR> </TABLE> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'>The Board of Directors believes that the present size of the Board, consisting of five directors, is appropriate given the size and operations of the Company.  The Board believes that its present members possess skills and experience that are valuable to the Company. The Board believes that the increased costs of adding additional directors outweighs any benefits.  Consequently, the Board considers its present make-up to be appropriate for the Company at this time and in the best interests of shareholders. </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>19 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P style="font:10pt Times New Roman;margin:0;text-indent:36pt;margin-left:180pt"> <FONT style="font-size:11pt;border-bottom:1px solid #000000"> <B> PROPOSAL </B> <B> 3 </B> </FONT> </P> <P> center style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> RATIFICATION OF THE APPOINTMENT OF </B> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Audit Committee engaged Lumsden McCormick, LLP to serve as the Company's independent registered public accounting firm for the fiscal year ending May 31, 2025. Although the Audit Committee is not required to do so, it is submitting its expected selection for ratification to the Annual Meeting in order to ascertain the views of the shareholders. The Audit Committee will not be bound by the vote of the shareholders; however, if the proposed selection is not ratified, the Audit Committee will revisit its selection. </P> <P style="font:10pt Times New Roman;margin:0"/> <P style="font:10pt Times New Roman;margin:0"> A representative of Lumsden McCormick, LLP will be present at the meeting, will be available to respond to appropriate questions and will have the opportunity to make a statement if he or she desires to do so. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Audit Committee approves all professional services, including tax related services, provided to the Company by Lumsden McCormick, LLP. Regarding Audit and Audit-Related services, the Committee reviews the annual audit plan and approves the estimated audit budget in advance. The aggregate fees billed by Lumsden McCormick, LLP for professional services to the Company were $136,000 and $123,000 for the fiscal years ended May 31, 2024 and 2023. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Audit Fees </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The aggregate fees billed by Lumsden McCormick, LLP for professional services rendered in connection with the audit of the Company's annual financial statements, the review of the Company's quarterly financial statements and services that are normally provided in connection with statutory and regulatory filings or engagements were $113,000 and $101,000 for the fiscal years ended May 31, 2024 and 2023. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Audit-Related Fees </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>There were no aggregate fees billed by Lumsden McCormick, LLP for professional assurance and related services reasonably related to the performance of the audit of the Company's financial statements, but not included under Audit Fees, for the fiscal years ended May 31, 2024 and 2023. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Tax Fees </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The aggregate fees billed by Lumsden McCormick, LLP for professional services for tax compliance, tax advice and tax planning were $15,000 and $13,000 for the fiscal years ended May 31, 2024 and 2023. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> All Other Fees </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The aggregate fees billed by Lumsden McCormick, LLP for the professional services rendered in connection with the audit of the Company’s 401(k) Plan were $9,000 and $8,000 for the fiscal years ended 2024 and 2023. </P> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Pre-Approval Policies and Procedures </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Audit Committee has adopted a policy that requires advance approval of all audit, audit-related, tax services and other services performed by the independent auditor. The policy provides for pre-approval by the Audit Committee of specifically defined audit and non-audit services. Unless the specific service has been previously pre-approved with respect to that year, the Audit Committee must approve the permitted service before the independent auditor is engaged to perform it. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0;margin-left:50.4pt;margin-right:50.4pt'> <B> THE BOARD OF DIRECTORS RECOMMENDS THAT THE APPOINTMENT OF LUMSDEN MCCORMICK, LLP AS THE COMPANY'S INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM FOR THE FISCAL YEAR ENDING MAY 31, 2025, BE RATIFIED AND URGES YOU TO VOTE FOR THIS PROPOSAL. </B> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>20 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'> <B> GENERAL INFORMATION </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Voting </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Under the Business Corporation Law of New York (BCL) and the Company's by-laws, the presence, in person or by proxy, of a majority of the outstanding common shares is necessary to constitute a quorum of the shareholders to take action at the Annual Meeting. The shares which are present or represented by a proxy will be counted for quorum purposes regardless of whether or not a broker with discretionary authority fails to exercise discretionary voting authority (a broker non-vote) with respect to any particular matter. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>A nominee standing for election must be elected by a plurality of votes cast at the Annual Meeting, and if elected, serve in the class of directors to which he is elected. Withheld votes and broker non-votes will have no effect on the vote for a nominee. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Any other actions properly brought before the meeting, including Proposal 3, ratification of Lumsden McCormick, LLP as the Company’s independent registered public accounting firm for the fiscal year ending May 31, 2025, requires a majority of the votes cast at the meeting by shareholders entitled to vote. Abstentions will have the same effect as a vote against the action. Broker non-votes will have no effect on the vote upon the action. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>For voting purposes, all proxies marked for, against, abstain, or withhold authority will be counted in accordance with such instruction as to each item. </P> <P style="font:10pt Times New Roman;margin:0"/> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Expenses </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The expenses of this solicitation, including the costs of preparing and mailing this Proxy Statement and accompanying material, will be borne by the Company. The Company has retained the services of Regan Associates, Inc. if needed to assist in the solicitation of proxies under a contract providing for the payment of $7,500, plus out-of-pocket expenses. In addition to solicitation by mail, Regan Associates, Inc. and regular employees of the Company may solicit proxies in person, by mail or by telephone, but no employee of the Company will receive any compensation for solicitation activities in addition to his or her regular compensation. Expenses may also include the charges and expenses of brokerage houses, nominees, custodians and fiduciaries for forwarding proxies and proxy materials to beneficial owners of shares. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Shareholder Proposals and Director Nominations for the 2025 Annual Meeting </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Proposals of shareholders intended to be included in our proxy materials for presentation at our 2025 annual meeting of shareholders (the “2025 Annual Meeting”) in accordance with Rule 14a-8 under the Exchange Act must be received by the Corporate Secretary of the Company at our principal executive offices no later than May 15, 2025, which is 120 days prior to September 12, 2025, the one-year anniversary of the mailing of our 2024 proxy statement. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>Shareholders wishing to propose a matter for consideration at the 2025 Annual Meeting, but not to include the matter in our proxy materials, must follow the advance notice procedures set forth in Section 11 and Section 12 of the Company’s by-laws, a copy of which is available upon written request to: Mark V. McDonough, Corporate Secretary, Taylor Devices, Inc., 90 Taylor Drive, North Tonawanda, New York 14120. Under our by-laws, the Company must receive notice of the business that is not submitted for inclusion in our proxy materials pursuant to Rule 14a-8 not less than thirty (30) days before the date of the 2025 Annual Meeting, among other requirements. These specified procedures also apply to shareholder nominations for directors. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>To comply with the universal proxy rules, shareholders who intend to solicit proxies in support of director nominees other than the Company’s nominees must comply with and provide the information required by Rule 14a-19 under the Exchange Act to the Company’s Corporate Secretary at the forementioned address no later than August 26, 2025, assuming that the 2024 Annual Meeting is held on schedule. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Delinquent Section 16(a) Reports </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:12pt Times New Roman;margin:0'> <FONT> font-size:10pt>Section 16(a) of the Exchange Act requires the Company's executive officers, directors, and beneficial owners of more than 10 percent of the Company’s common stock to file initial reports of ownership and reports of changes of ownership of the Company's common stock with the SEC and the Company. Based solely on a review of Forms 3, 4, and 5 and amendments </FONT> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>21 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> justify style='font:12pt Times New Roman;margin:0'> <FONT> font-size:10pt>thereto furnished to us pursuant to Rule 16a-3(e) under the Exchange Act, we believe that all filing requirements under Section 16(a) of the Exchange Act were satisfied during the fiscal year ended May 31, 2024. </FONT> </P> <P> justify style='font:10pt Times New Roman;margin:0;color:#000000'> </P> <P> justify style='font:10pt Times New Roman;margin:0;color:#000000'> <B> Director and Officer Derivative Trading and Hedging Policy </B> </P> <P style="font:10pt Times New Roman;margin:0;color:#000000"> </P> <P> justify style='font:10pt Times New Roman;margin:0;color:#000000'>The Company has adopted a Policy Against Insider Trading that prohibits those subject to the policy, including our directors, officers and employees, from hedging transactions and derivative trading involving the Company's securities. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> <B> Financial and Other Information </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The financial statements of the Company for the fiscal year ended May 31, 2024, are contained in the Company's 2024 Annual Report which accompanies this Proxy Statement. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> center style='font:10pt Times New Roman;margin:0'> <B> OTHER MATTERS </B> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'>The Board of Directors knows of no other matters to be voted upon at the Annual Meeting. If any other matters properly come before the Annual Meeting, it is the intention of the persons named in the enclosed form of proxy to vote on such matters in accordance with their judgment. </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <TABLE> border-collapse:collapse> <TR> <TD> 2 valign=top style=width:239.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:208.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> <B> By Order of the Board of Directors </B> </P> <P style="font:12pt Times New Roman;margin:0"/> </TD> </TR> <TR> height:15.75pt> <TD> 2 valign=top style=width:239.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:208.8pt> <P> justify style='font:10pt Times New Roman;margin:0'> <IMG> tddef14a_1.jpg width=251 height=55 alt='Picture 823056049' title='Picture 823056049'> </IMG> </P> </TD> <TR> <TD> top style=width:41.4pt> <P> justify style='font:10pt Times New Roman;margin:0'>Dated: </P> </TD> <TD> top style=width:198pt> <P> justify style='font:10pt Times New Roman;margin:0'>September 12, 2024 </P> </TD> <TD> top style='width:208.8pt;border-top:0.5pt solid #000000'> <P> justify style='font:10pt Times New Roman;margin:0'>Mark V. McDonough </P> </TD> </TR> <TR> <TD> top style=width:41.4pt> <P> justify style='font:10pt Times New Roman;margin:0'> </P> </TD> <TD> top style=width:198pt> <P> justify style='font:10pt Times New Roman;margin:0'>North Tonawanda, New York </P> </TD> <TD> top style=width:208.8pt> <P> justify style='font:10pt Times New Roman;margin:0'>Corporate Secretary </P> </TD> </TR> </TR> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>22 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:10pt Times New Roman;margin:0'>[THIS PAGE INTENTIONALLY LEFT BLANK] </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>23 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P style="font:12pt Times New Roman;margin:0"> <IMG> tddef14a_4.jpg width=631 height=798> </IMG> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>24 </P> <HR style="page-break-after:always;border:0;height:3pt;background-color:#909090;margin:8pt 0"> <P> line-height:0;margin:0> </P> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P style="font:12pt Times New Roman;margin:0"> <IMG> tddef14a_5.jpg width=631 height=629> </IMG> <HR style="border:0;height:0;width:0;margin:14pt 0 0 0"> <P> center style='font:8pt Times New Roman;margin:0'>25 </P> <P style="font:12pt Times New Roman;margin:0"/> </HR> <noscript> <img src="https://www.sec.gov/akam/13/pixel_81508e7?a=dD1kZjYwOGQxMzllNjMyNGJkMWFlYzVmMzhlYWJlZTFlYTZjMzQ5OTdlJmpzPW9mZg==" style="visibility: hidden; position: absolute; left: -999px; top: -999px;"/> </noscript> </P> </HR> </HR> </HR> </P> </HR> </HR> </HR> </HR> </HR> </HR> </TABLE> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </P> </P> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </TABLE> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </P> </P> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </HR> </TABLE> </HR> </HR> </HR> </HR> </DIV> </BODY> </HTML> </TEXT> </DESCRIPTION> </FILENAME> </SEQUENCE> </TYPE> </DOCUMENT> </div> </div> <!---------------------------------------> <!----------- 3rd column ----------------> <!----------- RIGHT MENU ----------------> <section class="col-md-3 col-sm-3 col-lg-3 section toc" id="3rd"> <div id="report_table_cont">TABLE OF CONTENTS</div> <div id="table_filing"> </div> </section> </div> </div> <style> .ended { font-size: 8pt; display: block; } #financeModal { padding: 0 !important; } .reload { font-family: Lucida Sans Unicode; cursor: pointer; } .modal-blur { -webkit-filter: blur(5px); -moz-filter: blur(5px); -o-filter: blur(5px); -ms-filter: blur(5px); filter: blur(5px); } #financeModal .modal-dialog { width: 80%; max-width: none; margin: 0; left: 10%; top: 5%; } #financeModal .modal-content { border: 0; border-radius: 0; } #financeModal .modal-body { overflow-y: auto; } .date { font-size: 9pt; } .active-finance { background-color: #2196f3 !important; color : ffffff !important; } .active-fin-type { background-color: #2196f3 !important; color : ffffff !important; } .finance_type:hover, .finance_type:active, .finance_type:focus { background-color: #ffffff; text-decoration: none; } .finance:hover, .finance:active, .finance:focus { background-color: #ffffff; text-decoration: none; } #finance-div table tbody tr td:not(:first-child) { text-align: right; } .blur { box-shadow: 0px 0px 20px 20px rgba(255, 255, 255, 1); text-shadow: 0px 0px 10px rgba(51, 51, 51, 0.9); transform: scale(0.9); opacity: 0.6; } </style> <style> .gemini-response { font-family: Arial, sans-serif; line-height: 1; } .gemini-response h2, .gemini-response h3 { margin-top: 20px; margin-bottom: 10px; } .gemini-response ul { padding-left: 20px; } .gemini-response ul li { margin-bottom: 10px; } .gemini-response p { margin-bottom: 15px; } .modal-lg { max-width: 50%; } </style> <div aria-hidden="true" aria-labelledby="shareholderModalLabel" class="modal fade " id="shareholderModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="shareholderModalTitle"></h5> <button aria-label="Close" class="close pr-2 pt-2 pb-1" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <h2 class="fund-header" id='dynamic-header' style="text-decoration:underline"></h2> <p id="p-fund" style="display: none;">No information found </p> <div id="fund_div"> <p class="small-note ">* THE VALUE IS THE MARKET VALUE AS OF THE LAST DAY OF THE QUARTER FOR WHICH THE 13F WAS FILED.</p> <div class="table-responsive x-overflow-hide"> <table class="fl-table table" id="fund-table"> <thead> <th onclick="sortTable(0)">FUND</th> <th onclick="sortTable(1)">NUMBER OF SHARES</th> <th onclick="sortTable(2)">VALUE ($)</th> <th>PUT OR CALL</th> </thead> <tbody class="tbody"> </tbody> </table> </div> </div> </div> </div> </div> </div> <div aria-hidden="true" aria-labelledby="directorModalLabel" class="modal fade" id="directorModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="dynamicDirector-header">Directors of TAYLOR DEVICES INC - as per the latest proxy <sup><small>Beta</small></sup></h5> <button aria-label="Close" class="close pr-2 pt-2 pb-1" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <div class="table-wrapper-director" id="dircter-table-div"> <table class="fl-table table" id="director-table"> <thead> <th class="directorCol">DIRECTORS</th> <th class="directorCol ageCol">AGE</th> <th class="directorCol">BIO</th> <th class="directorCol">OTHER DIRECTOR MEMBERSHIPS</th> </thead> <tbody class="tbody"> </tbody> </table> </div> </div> </div> </div> </div> <div aria-labelledby="registerModalLabel" class="modal fade " data-backdrop="static" data-keyboard="false" id="registerModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-dialog-centered" role="document"> <div class="modal-content"> <div> <button class="close pr-2 pt-2" type="button"> <a class="text-dark text-decoration-none" href="/TAYD/"> <span aria-hidden="true">×</span></a> </button> </div> <div class="text-center pb-3"><a href="/pricing/">Subscribe</a> to view this or get a <a href="/token/">free 24 hour token </a> or take a free test drive with ticker <a href="/snapshot/AAPL">AAPL</a>. View our demo <a href="/demo/">video</a>. </div> </div> </div> </div> <div aria-hidden="true" aria-labelledby="executiveModalLabel" class="modal fade" id="executiveModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id='executiveModalLabelTitle'></h5> <button aria-label="Close" class="close pr-2 pt-2 pb-1" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <h2 class="fund-header" style="text-decoration:underline"></h2> <div class="table-responsive"> <div class="table-wrapper-execs" id='executive-button'> <p>No information found </p> </div> </div> </div> </div> </div> </div> <div aria-hidden="true" aria-labelledby="customerModalLabel" class="modal fade" id="customerModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="cust-header"> Customers and Suppliers of TAYLOR DEVICES INC <sup><small>Beta</small></sup></h5> <button aria-label="Close" class="close pr-2 pt-2 pb-1" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <div class="container"> <div class="row"> <div class="col-md-6 col-12"> <div class=" table-responsive x-overflow-hide" id="Customer_table"> <p>No Customers Found </p> </tbody> </table> </div> </div> <div class="col-md-6 col-12"> <div class=" table-responsive x-overflow-hide" id="Supplier_table"> <p>No Suppliers Found</p> </tbody> </table> </div> </div> </div> </div> </div> </div> </div> </div> <div aria-hidden="true" aria-labelledby="bondModalLabel" class="modal fade " id="bondModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="bondModalTitle">Bonds of TAYLOR DEVICES INC</h5> <button aria-label="Close" class="close pr-2 pt-2 pb-1" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <div class="table-responsive " id="bond_table"> </div> </div> </div> </div> </div> <div aria-hidden="true" aria-labelledby="bondpricegraphModalLabel" class="modal fade " id="bondpricegraphModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document" style=" height: 100%;"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="bondpricegraphModalTitle">Price Graph </h5> <button aria-label="Close" class="close" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body" id="price_graph"> <img id="bond_graph" src=""> </div> <div class="row mt-5"> <div class="col-1 mt-2 pr-0"> <h6 style="position: relative;float: right;"><em class="dot red"></em> </h6> </div> <div class="col-11 pl-0"> <p class="text-muted">Price</p> </div> <div class="col-1 mt-2 pr-0"> <h6 style="position: relative;float: right;"><em class="dot"></em> </h6> </div> <div class="col-11 pl-0"> <p class="text-muted">Yield</p> </div> </div> </div> </div> </div> <div aria-hidden="true" aria-labelledby="InsiderOwnershipModalLabel" class="modal fade " id="InsiderOwnershipModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="insider_ownershipModalTitle">Insider Ownership of TAYLOR DEVICES INC company <sup><small>Beta</small></sup></h5> <button aria-label="Close" class="close pr-2 pt-2 pb-1" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <div class="table-wrapper-director" id="insider_ownership_table-div"> <table class="fl-table table" id="insider_ownership_table"> <thead> <th class="insideOwnershipCol">Owner</th> <th class="insideOwnershipCol">Position</th> <th class="insideOwnershipCol">Direct Shares</th> <th class="insideOwnershipCol">Indirect Shares</th> </thead> <tbody class="tbody"> </tbody> </table> </div> </div> </div> </div> </div> <div class="modal fade" id="aiInsights" tabindex="-1" role="dialog" aria-labelledby="aiInsightsLabel" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="aiInsightsLabel">AI Insights</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <div id="geminiResponseContainer" class="gemini-response"> <!-- Response content will be loaded here --> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div aria-hidden="true" aria-labelledby="financeModalLabel" class="modal fade " id="financeModal" role="dialog" tabindex="-1"> <div class="modal-dialog modal-xl modal-dialog-scrollable" role="document"> <div class="modal-content"> <div class="modal-header"> <div> <span> <h5 class="modal-title" id="financeModalTitle">Summary Financials of TAYLOR DEVICES INC <sup><small>Beta</small></sup></h5> </span> <span style="font-size:80%"> <small>(We are using algorithms to extract and display detailed data. This is a hard problem and we are working continuously to classify data in an accurate and useful manner.)</small> </span> </div> <button aria-label="Close" class="close pr-2 pt-2 pb-1" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> </button> </div> <input id="ftitle" type="hidden" value=""> <input id="displayed_finance" type="hidden" value="balance"> <input id="displayed_ftype" type="hidden" value="10-Q"> <input id="company_name_hidden" type="hidden" value="TAYLOR DEVICES INC"> <div class="modal-body"> <div class="row"> <div class="col-10"> <div aria-label="Basic example" class="btn-group" role="group"> <button class="btn model_button border border-primary finance p-1 active-finance" id="balance" type="button">Balance Sheet </button> <button class="btn model_button finance p-1" id="income" type="button"> Income Statement </button> <button class="btn model_button finance p-1" id="cash_flow" type="button">Cash Flow </button> </div> </div> <div class="col-2 pull-right"> <div aria-label="Basic example" class="btn-group" role="group" style="float: right;"> <button class="btn model_button finance_type p-1 active-fin-type" id="10-Q" type="button">Quarterly </button> <button class="btn model_button finance_type p-1" id="10-K" type="button">Annual </button> </div> </div> </div> <div class="table-responsive pt-2" id="finance-div"> No information found </div> </div> </div> </div> </div> </div> <script> </script> <script src="/static/js/threeButtonScroll.js?v=9"></script> <script src="/static/js/scroll_js.js?v=7"></script> <script> var ticker = "TAYD"; $(document).ready(function() { $('#aiInsights').on('show.bs.modal', function (event) { var companyName = "TAYLOR DEVICES INC"; var csrftoken = $('input[name="csrfmiddlewaretoken"]').val(); // Show loading spinner $('#geminiResponseContainer').html('<div class="text-center"><span class="spinner-border text-primary" role="status"><span class="sr-only">Loading...</span></span></div>'); // Logging the data sent in the AJAX request console.log('Preparing AJAX request with data:', { company_Name: companyName, csrfmiddlewaretoken: csrftoken }); $.ajax({ url: '/api/get_gemini_response/', type: 'POST', data: { 'company_Name': companyName, 'company_Ticker': ticker, 'csrfmiddlewaretoken': csrftoken }, success: function(data) { console.log('AJAX request successful. Data received:', data); if (data.error) { $('#geminiResponseContainer').html(`<div class='alert alert-danger'>Error: ${data.error}</div>`); } else { $('#geminiResponseContainer').html(formatResponse(data.response)); } }, error: function(xhr, status, error) { console.error("AJAX Error:", error); console.error("Detailed response:", xhr.responseText); $('#geminiResponseContainer').html(`<div class='alert alert-danger'>AJAX Error: ${error}</div>`); } }); }); }); function formatResponse(response) { let formattedResponse = response.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>'); // Convert **text** to <strong>text</strong> formattedResponse = formattedResponse.replace(/\* (.*?)(\n|$)/g, '<li>$1</li>'); // Convert * text to <li>text</li> formattedResponse = formattedResponse.replace(/<\/li><li>/g, '</li><li>').replace(/<li>/g, '<ul><li>').replace(/<\/li>/g, '</li></ul>'); // Wrap <li> in <ul> formattedResponse = formattedResponse.replace(/## (.*?)(\n|$)/g, '<h2>$1</h2>'); // Convert ## text to <h2>text</h2> formattedResponse = formattedResponse.replace(/### (.*?)(\n|$)/g, '<h3>$1</h3>'); // Convert ### text to <h3>text</h3> formattedResponse = formattedResponse.replace(/\n/g, '<br>'); // Convert newlines to <br> return `<div>${formattedResponse}</div>`; } </script> <script src="/static/js/filing.js?v=1"></script> <script> $("#second").contents().find("body").css({'padding': '1px 4px', 'overflow-x': 'hidden'}) var fid = '96536', printerLink = "/printer/" + "86890" + "/" + "True" + '/' //Append the print button to TOC function addPrintButton(items, type) { items.forEach((itm) => { itm.innerHTML = itm.innerHTML + '<span class="print">print</span>' itm.addEventListener('mouseover', function () { this.querySelector('span.print').style.display = 'inline-block' }) itm.addEventListener('mouseout', function () { this.querySelector('span.print').style.display = 'none' }) }) $('.' + type + '-link span.print').on('click', function (e) { let part = this.parentElement.hash.replace('#', '') openPrintPortion(part) }) } document.addEventListener('DOMContentLoaded', function () { I_frame = document.querySelector('#second') if (window.innerWidth > '700') { // I_frame.setAttribute('style','border:none;position:absolute;left:0vw;min-width:100%;max-width:100%;top:0vh;height:100%;min-height:100%;') } else { // I_frame.setAttribute('style','border:none;position:absolute;left:0vw;min-width:100vw;max-width:100vw!important;top:0vh;height:100%;min-height:100%;') } let partsInTOC = document.querySelectorAll('.part-link') let itemsInToc = document.querySelectorAll('.item-link') let notesInTOC = document.querySelectorAll('.note-link') addPrintButton(partsInTOC, 'part'); addPrintButton(itemsInToc, 'item'); addPrintButton(notesInTOC, 'note'); /* Toogle between the sections*/ let fillinglist = document.querySelectorAll('.firstsec')[0] let doc_preview = document.querySelectorAll('.document-view-section')[0] let toc = document.querySelectorAll('.toc')[0] let mobile_view = document.querySelectorAll('.mobile_view')[0] /* buttons for toggling */ let showfilings_btn = document.querySelectorAll('.show_filings_btn')[0] let showdoc_btn = document.querySelectorAll('.show_doc_btn')[0] let showtoc_btn = document.querySelectorAll('.show_toc_btn')[0] showfilings_btn.addEventListener('click', function () { let shortcutsmobile = document.querySelector('#shortcuts-mobile') fillinglist.style.display = 'block' doc_preview.style.display = 'none' toc.style.display = 'none' mobile_view.style.display = 'block' shortcutsmobile.style.display = 'none' }) showdoc_btn.addEventListener('click', function () { let shortcutsmobile = document.querySelector('#shortcuts-mobile') fillinglist.style.display = 'none' doc_preview.style.display = 'block' toc.style.display = 'none' mobile_view.style.display = 'none' shortcutsmobile.style.display = 'block' }) showtoc_btn.addEventListener('click', function () { let shortcutsmobile = document.querySelector('#shortcuts-mobile') fillinglist.style.display = 'none' doc_preview.style.display = 'none' toc.style.display = 'block' mobile_view.style.display = 'none' shortcutsmobile.style.display = 'none' }) $(".section document-view-section div").eq(1).after('<div id="doc-head"></div>') }) //track which filing has been clicked on let filingslinks = document.querySelectorAll('.filedate') /* let filingvalue = window.location.href.split('&'); console.log(filingvalue,'filingvaluefilingvalue') if (filingvalue.length===1){ let row =document.querySelector('#filings-section-list').querySelector('tbody').querySelectorAll('tr')[0] row.style.backgroundColor='#d8ecf3'; } else { filingvalue = window.location.href.split('&')[1].split('=')[1]; console.log(filingvalue,'filingvalue') filingslinks.forEach((filing)=>{ if (filing.outerHTML.search(filingvalue) > -1) { filing.setAttribute('style','background-color:#d8ecf3') } }) }*/ function openPrintPortion(portion) { var a = window.open(printerLink + portion, '_blank'); } </script> <script> function numberWithCommasNoDecimal(x) { // If null or undefined, just return dash if (x === null || x === undefined) return '-'; // Convert to float let val = parseFloat(String(x).replace(/,/g, '').trim()); if (isNaN(val)) return '-'; // Track negativity const negative = val < 0; // Work with absolute value for splitting val = Math.abs(val); // Now split at the decimal let [intPart, decimalPart] = val.toString().split('.'); // Insert commas in integer portion only intPart = intPart.replace(/\B(?=(\d{3})+(?!\d))/g, ','); // Reattach sign and decimal let result = negative ? '-' + intPart : intPart; if (decimalPart !== undefined) { result += '.' + decimalPart; } return result; } function fetch_bond_price_graph(bond_symbol) { $("#bond_graph").attr("src","/image/price_graph/"+bond_symbol+".png"); } function clear_div(element) { $('#' + element).html(''); } $(document).ready(function () { var ticker = "TAYD"; /***************************************************** * 1) OLD FUNCTION: create_table_new2 (flat structure) *****************************************************/ function create_table_new2( finance_data_section, finance_data_value, finance_data_label, ended_lst, f_data, dates, finance_title ) { if (!f_data || f_data.length === 0) { $('#finance-div').html('<div class="alert alert-info">No financial data available.</div>'); return; } // A quick helper to strip commas and parse float function parseValue(val) { if (val === null || val === undefined) return null; // Already a number if (typeof val === 'number') return val; // If it's a string, remove commas, extra spaces, etc. if (typeof val === 'string') { let cleaned = val.replace(/,/g, '').trim(); let parsed = parseFloat(cleaned); return isNaN(parsed) ? null : parsed; } return null; } var table = ` <div class="text-center"><strong>${finance_title}</strong></div> <table class="fl-table table table-hover" id="finance-table"> <thead> <tr> <th>Field</th>`; // Add headers for each date (same order as ended_lst) ended_lst.forEach(function(date) { table += `<th>${date}</th>`; }); table += `</tr></thead><tbody>`; // Track the last section and sub-section for grouping var lastSection = null; var lastSubSection = null; // f_data = [section, sub_section, label, [values per date]] f_data.forEach(function(item) { var section = item[0]; var sub_section = item[1]; var label = item[2]; var values = item[3]; // If we've hit a new section, print a row if (section && section !== lastSection) { table += ` <tr style="background-color: #000; color: #fff; text-transform: uppercase;"> <td colspan="${ended_lst.length + 1}"> <strong>${section}</strong> </td> </tr>`; lastSection = section; lastSubSection = null; } // If we've hit a new sub-section if (sub_section && sub_section !== lastSubSection) { table += ` <tr style="background-color: #f0f0f0;"> <td colspan="${ended_lst.length + 1}"> <strong>${sub_section}</strong> </td> </tr>`; lastSubSection = sub_section; } // Now the actual row for this label table += `<tr> <td style="padding-left: 20px;">${label}</td>`; // For each value in this row’s array (aligned with ended_lst) values.forEach(function(value) { // Convert to a real float if possible let numericVal = parseValue(value); if (numericVal === null) { // Not a valid float => dash table += `<td>-</td>`; } else { // Format as thousands with commas (keeping negatives and decimals) let formatted = numberWithCommasNoDecimal(numericVal); table += `<td>${formatted}</td>`; } }); table += `</tr>`; }); table += `</tbody></table>`; $('#finance-div').html(table); } /******************************************************* * 2) NEW FUNCTION: createNestedTable (hierarchical) *******************************************************/ function createNestedTable(nested_sections, ended_lst, finance_title) { // 1) Declare "table" in this scope let table = ` <div class="text-center"><strong>${finance_title}</strong></div> <table class="fl-table table table-hover" id="finance-table"> <thead> <tr> <th>Field</th>`; ended_lst.forEach(function(date) { table += `<th>${date}</th>`; }); table += `</tr></thead><tbody>`; // 2) Define processNode *inside* so it can reference "table" function processNode(node, indentLevel) { const leftPadding = indentLevel * 20; table += `<tr> <td style="padding-left:${leftPadding}px; font-weight:${indentLevel === 0 ? 'bold' : 'normal'};"> ${node.label || node.sectionName} </td>`; node.valueByPeriod.forEach(function(val) { if (val === null || val === undefined) { val = '-'; } else { // Attempt to parse even if it's a string if (typeof val === 'string') { let cleaned = val.replace(/,/g, '').trim(); let parsed = parseFloat(cleaned); if (!isNaN(parsed)) { val = numberWithCommasNoDecimal(parsed); } else { val = '-'; } } else if (typeof val === 'number') { val = numberWithCommasNoDecimal(val); } } table += `<td>${val}</td>`; }); table += `</tr>`; // Recurse if (node.children && node.children.length > 0) { node.children.forEach(child => processNode(child, indentLevel + 1)); } } // 3) Loop through top-level nodes nested_sections.forEach(node => { processNode(node, 0); }); table += `</tbody></table>`; $('#finance-div').html(table); } /************************************************ * 3) Show the modal -> call get_ajax_data ************************************************/ $('#financeModal').on('shown.bs.modal', function (e) { get_ajax_data(); }); /************************************************ * 4) get_ajax_data: calls Django endpoint ************************************************/ function get_ajax_data() { console.log($('#company_name_hidden').val()); var company_name = $('#company_name_hidden').val().replace('/', ' ').replace('\\', ' '); console.log(company_name); var cik = "96536"; // e.g. '123456' var finance_type = $('#displayed_finance').val(); // e.g. 'balance', 'income', 'cash_flow' var data_type = $('#displayed_ftype').val(); // e.g. '10-K', '10-Q' var url = `/get/finance/data/${cik}/${finance_type}/${data_type}/${encodeURIComponent(ticker)}/`; $.ajax({ url: url, method: 'GET', success: function (resp) { $('#finance-div').html(''); if (resp.error) { $('#finance-div').html(`<div class="alert alert-danger">${resp.error}</div>`); } else { console.log(resp); // If server returns nested_sections, show them if (resp.nested_sections && resp.nested_sections.length > 0) { createNestedTable(resp.nested_sections, resp.date, resp.finance_title); } else { // Otherwise, fallback to the old flat approach create_table_new2( resp.finance_data_section, resp.finance_data_value, resp.finance_data_label, resp.ended_lst, resp.f_data, resp.date, resp.finance_title ); } } }, error: function (xhr, status, error) { $('#finance-div').html(`<div class="alert alert-danger">An error occurred: ${error}</div>`); console.error(error); } }); } /************************************************ * 5) On-click handlers for toggling (unchanged) ************************************************/ $(document).on('click', '.finance', function () { $('.finance').removeClass('active-finance'); $(this).addClass('active-finance'); // the button's ID (like "balance" or "income") is stored: $('#displayed_finance').val($(this).attr('id')); get_ajax_data(); // calls the /get/finance/data endpoint }); $(document).on('click', '.finance_type', function () { $('.finance_type').removeClass('active-fin-type'); $(this).addClass('active-fin-type'); // the button's ID ("10-Q" or "10-K") is stored: $('#displayed_ftype').val($(this).attr('id')); get_ajax_data(); }); $("#registerModal").on('shown', function () { console.log(7899809) alert("I want this to appear after the modal has opened!"); }); /* close popover */ $('body').on('click', function (e) { $('[data-toggle="popover"]').each(function () { //the 'is' for buttons that trigger popups //the 'has' for icons within a button that triggers a popup if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) { $(this).popover('hide'); } }); }); $('[data-toggle="tooltip"]').tooltip(); $('.exhibit-link').each(function () { href = $(this).attr('href') if (href.search('/www.sec.gov/Archives/edgar/data/') == -1) $(this).attr('href', "https://www.sec.gov/Archives/edgar/data/96536/000137647423000430/" + href) }); $('.info-btn-circle').on('click', function (e) { $('.info-btn-circle').not(this).popover('hide'); }); if ($('#fixed-content-filing').length > 0) { fetch("/fetch_fixed_content_filing", { headers: { "X-CSRFToken": document.getElementById("csrf") .querySelector("input") .value, 'Content-type': 'application/json' }, method: "POST", body: JSON.stringify({ "ticker": "TAYD", "current_filing_name": "TAYLOR DEVICES INC", "current_filing_filingtype": "DEF 14A", "current_filing_filingdate": "Sept. 8, 2023" }) }) .then(response => response.json()) .then(function (data) { bonds = data.data.bonds directors = data.data.director executives = data.data.executive funds = data.data.funds insider_ownership = data.data.insider_ownership bond_html = '' director_html = '' funds_html = '' executive_html = '' insider_ownership_html = '' if (bonds.length > 0) { bond_html += '<table class="fl-table table" id="bond-table"> <thead> <tr> <th rowspan="2">ISSUER NAME</th> <th rowspan="2">SYMBOL</th> <th rowspan="2">CALLABLE</th> <th rowspan="2">SUB-PRODUCT TYPE</th> <th rowspan="2"> COUPON</th> <th rowspan="2">MATURITY</th> <th class="text-center" colspan="2">RATINGS</th> <th class="text-center" colspan="2">LAST SALE</th><th rowspan="2">GRAPH</th> </tr> <tr> <th>MOODY\'S® </th> <th>S&P</th > <th> PRICE </th> <th>YIELD</th> </tr> </thead> <tbody class = "tbody" > ' for (let i = 0; i < bonds.length; i++) { bond_html += '<tr> <td>' + bonds[i].issuer_name + '</td> <td> '+ bonds[i].symbol + ' </td> <td>' + bonds[i].callable + '</td> <td>' + bonds[i].sub_product_type + '</td> <td>' + bonds[i].coupon + '</td> <td>' + bonds[i].matuarity + '</td> <td>' + bonds[i].moody_rating + '</td> <td>' + bonds[i].s_and_p_rating + '</td> <td>' + bonds[i].last_sale_price + '</td> <td>' + bonds[i].last_sale_yield + '</td> <td> <div class="row justify-content-center"> <button class="btn col" style="font-size: inherit; margin-top: 0px; padding-top: 0px;" data-target="#bondpricegraphModal" onclick="fetch_bond_price_graph(\''+bonds[i].symbol+'\')" data-toggle="modal">Price Graph</button><div></td> </tr>' } bond_html += '</tbody> </table>' } else { bond_html = 'No information found' } $("#bond_table").empty(); $('#bond_table').append(bond_html); if (executives.length > 0) { executive_html = executives } else { executive_html = 'No information found' } $("#executive-button").empty(); $('#executive-button').append(executive_html); document.getElementById("dynamicDirector-header").innerHTML = "Directors of TAYLOR DEVICES INC - as per the latest proxy " + '<sup><small>Beta</small></sup>'; if (directors.length == 0) { $('#director-table').hide(); $('#dircter-table-div').html('<p>No information found</p>') } else { $('#director-table').show(); for (var i = 0; i < directors.length; i++) { tr = ' <tr >' tr += '<td ><center>' + directors[i][0] + '</center></td>' if (directors[i][1] == null) tr += '<td class=" ageCol" ><center></center></td>' else tr += '<td class=" ageCol" ><center>' + directors[i][1] + '</center></td>' tr += '<td id = "bioCol" ><p>' + directors[i][2] + '</p></td>' other = '' for (k = 0; k < directors[i][3].length; k++) { if (k == directors[i][3].length - 1) { other = other + directors[i][3][k] } else { other = other + directors[i][3][k] + ', ' } } tr += ' <td ><center>' + other + '</center></td>' tr += '</tr>' $('#director-table tbody').append(tr) } } if (funds.length != 0) { date = new Date(data.data.fund_report_date) day = date.getDate(); month = date.toLocaleString('default', { month: 'short' }); year = date.getFullYear(); $("#shareholderModalTitle").text("Top 100 Shareholders of TAYLOR DEVICES INC as of " + month + ' ' + day + ', ' + year) } else { $("#shareholderModalTitle").text("Top 100 Shareholders of TAYLOR DEVICES INC") } //$('#cust-header').text( "Customers and Suppliers of TAYLOR DEVICES INC") for (var i = 0; i < funds.length; i++) { tr = '<tr id="tr_doc">' tr += '<td class="success fund text-uppercase">' + funds[i].fund + '<button type="button" id="' + i + '" class="btn btn-secondary btn-small info-btn-circle" data-container="body" data-title="×" data-toggle="popover" data-placement="top" data-html="true" >i</button></td>' tr += '<td class = "fund-shares" >' + numberWithCommasNoDecimal(funds[i].share_prn_amount) + '</td>' tr += '<td class="fund-value">' + numberWithCommasNoDecimal(funds[i].value) + '</td>' tr += '<td class="success"><center>' + funds[i].put_call + '</center></td>' tr += '</tr>' $('#fund-table tbody').append(tr) } $('[data-toggle="popover"]').popover({sanitize:false, content: function() { var i = $(this).attr('id') text_tooltip = '<div class="container"><div class="row">'+ '<div class="col-4 p-0 font-weight-bold " >Filed By: </div><div class="col-8 p-0 hover-shareholder tooltip-custom copy-details"><div class="copy-text">'+funds[i].filed_by_name+'</div><span class="tooltiptext">Click To Copy</span></div>'+ '<div class="col-4 p-0 font-weight-bold" >Address: </div><div class="col-8 p-0 hover-shareholder tooltip-custom copy-details"><div class="copy-text">'+funds[i].address+'</div><span class="tooltiptext">Click To Copy</span></div>'+ '<div class="col-4 p-0 font-weight-bold" >Phone: </div><div class="col-8 p-0 hover-shareholder tooltip-custom copy-details"><div class="copy-text">'+funds[i].phone+'</div><span class="tooltiptext">Click To Copy</span></div>'+ '</div></div>' return text_tooltip; //return $('#po' + id).html(); } }); if (insider_ownership.length != 0) { for (var i = 0; i < insider_ownership.length; i++) { tr = '<tr id="tr_doc">' tr += '<td class="success fund text-uppercase">' + insider_ownership[i].owner + '</td>' tr += '<td class = "fund-shares" >' + numberWithCommasNoDecimal(insider_ownership[i].position) + '</td>' tr += '<td class="fund-value">' + numberWithCommasNoDecimal(insider_ownership[i].current_direct_shares) + '</td>' tr += '<td class="fund-value">' + numberWithCommasNoDecimal(insider_ownership[i].current_indirect_shares) + '</td>' tr += '</tr>' $('#insider_ownership_table tbody').append(tr) } } else { $('#insider_ownership_table tbody').append('No Data Found') } $("#executiveModalLabelTitle").text("Executives of TAYLOR DEVICES INC - as per the latest proxy") $('#executive-button table').addClass('table') $('#executive-button table tr:first-child').css('background-color', '#4FC3A1') $('#executive-button table tr td').css('border-right', 'none') $('#executive-button table').addClass('fl-table') $('#executive-button table').attr('border', '0') color = '#4FC3A1'; no = 0; $('#executive-button table tr:first-child td').each(function () { text = $(this).text(); text = text.replace(/\u200B/g, ''); text = text.replace(/[\u200B-\u200D\uFEFF]/g, ''); if (text.trim() == '') { $(this).css('background-color', color) if (no == 0) color = '#324960' } else { if (color == '#4FC3A1') color = '#324960' else color = '#4FC3A1' $(this).css('background-color', color) } no++; }) const table = document.querySelector('#executive-button table'); dates = data.data.yearly_years; ended_lst = data.data.ended_lst; finance_data_section = data.data.finance_data_section; finance_data_value = data.data.finance_data_value; finance_data_label = data.data.finance_data_label; f_data = data.data.f_data; }) } }) </script> </div> </div> </div> </body> <script crossorigin="anonymous" defer integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" src="/static/bootstrap/js/popper.min.js"></script> <script defer src="/static/bootstrap/js/bootstrap.min.js"></script> <script defer src="/static/bootstrap/js/custom.min.js"></script> <script> var today_date = new Date(); today_date.setHours(0); today_date.setMinutes(0); today_date.setSeconds(0); $(document).ready(function() { $('#load-div-graph').show() finance_table_div = $('#finance_table_div') if (finance_table_div.length > 0) { fetch_live_stock_data(initial_call = 'true') setInterval(function() { fetch_live_stock_data() }, 30000) } serverStartTime = new Date("") moment_current_time = moment().tz("America/New_York"); moment_server_time = moment(serverStartTime).tz("America/New_York") var server_difference = (moment_current_time.diff(moment_server_time) / 1000).toFixed(2); var endTime = new Date(); var difference = ((endTime - startTime) / 1000).toFixed(2); //var serverdiff = ((endTime - serverStartTime)/1000).toFixed(2); $('#load_time').text(server_difference + ' s/' + difference + ' s') //MOBILE ONE AND MOBILE THREE var menu = "close"; $(".mobile-one .menu-toggle, .mobile-three .menu-toggle").click(function() { if (menu === "close") { $(this).parent().next(".mobile-nav").css("transform", "translate(0, 0)"); menu = "open"; } else { $(this).parent().next(".mobile-nav").css("transform", "translate(-100%, 0)"); menu = "close"; } }); }) function openNav() { document.getElementById("mySidebar").style.width = "250px"; // document.getElementById("main").style.marginLeft = "250px"; } function closeNav() { document.getElementById("mySidebar").style.width = "0"; // document.getElementById("main").style.marginLeft= "0"; } function change_selected_view(element) { site_view = element.value; if (document.getElementById('site_view').length == 3) { if (site_view === 'filing') { href = window.location.href href = href.split('/') href = href.slice(0, 3).join('/') + '/' + href.slice(-1) window.location.href = href } else { href = window.location.href href = href.split('/') href = href.slice(0, 3).join('/') + '/snapshot/' + href.slice(-1) window.location.href = href } } else if (site_view === 'filing') { href = window.location.href href = href.split('/') href = href.slice(0, 3).join('/') + '/' + href.slice(-1)[0].split('#')[0] window.location.href = href } else { href = window.location.href href = href.split('/') if (href.slice(-1) !== '') { ticker = href.slice(-2, -1) if (ticker[0].length == 1 && /^[1-9]+$/.test(ticker)) { ticker = href.slice(-1) } else if (!/^[a-zA-Z]+$/.test(ticker)) { ticker = href.slice(-3, -2) } } else { ticker = href.slice(-1) } href = href.slice(0, 3).join('/') + '/snapshot/' + ticker window.location.href = href } } function load_document(filedata) { // read text from URL location var request = new XMLHttpRequest(); request.open('GET', filedata.path, true); request.send(null); $('#second #load-div').show(); request.onreadystatechange = function() { if (request.readyState === 4 && request.status === 200) { var type = request.getResponseHeader('Content-Type'); if (type.indexOf("text") !== 1) { $('#load-div').hide(); $("#second").empty(); second = document.getElementById('second') second.insertAdjacentHTML('beforeend', request.responseText) second.scrollTop = 00; $("#filing-title").empty(); $('#filing-title').append(filedata.file_title); return true } } } } function fetch_history_graph_data(element) { ticker = window.location.href.split('/').slice(-1)[0] graph = localStorage.getItem('graph_' + ticker + today_date); if (graph) { $('#graph_div')[0].innerHTML = ''; $('#graph_div').append(graph); } else { localStorage.clear(); fetch("/fetch_history_graph_data", { headers: { "X-CSRFToken": document.getElementById("csrf") .querySelector("input") .value, 'Content-type': 'application/json' }, method: "POST", body: JSON.stringify({ "ticker": ticker, "years": '1y' }) }) .then(response => response.json()) .then(function(data) { $('#load-div-graph').hide() $('#graph_div').append(data.graph); fetch("/fetch_history_graph_data", { headers: { "X-CSRFToken": document.getElementById("csrf") .querySelector("input") .value, 'Content-type': 'application/json' }, method: "POST", body: JSON.stringify({ "ticker": ticker, "years": '10y' }) }) .then(response => response.json()) .then(function(data) { $('#load-div-graph').hide() $('#finance_table_div').append(data.table); $('#graph_div')[0].innerHTML = ''; $('#graph_div').append(data.graph); localStorage.setItem('graph_' + ticker + today_date, data.graph); }) }) } } function fetch_history_table_data(element) { table = localStorage.getItem('table_' + ticker + today_date); if (table) { $('#finance_table_div').append(table); } else { fetch("/fetch_history_table_data", { headers: { "X-CSRFToken": document.getElementById("csrf") .querySelector("input") .value, 'Content-type': 'application/json' }, method: "POST", body: JSON.stringify({ "ticker": window.location.href.split('/').slice(-1)[0], }) }) .then(response => response.json()) .then(function(data) { $('#finance_table_div').append(data.table); localStorage.setItem('table_' + ticker + today_date, data.table); }) } } function fetch_live_stock_data(initial_call = '') { let options = { timeZone: 'America/New_York', hour: 'numeric', minute: 'numeric', second: 'numeric', }; let formatter = new Intl.DateTimeFormat([], options); // "09:00:00" < currentTime < "16:00:00" or forced initial_call const currentTime = String(formatter.format(new Date())); if ((currentTime > '09:00:00' && currentTime < '16:00:00') || initial_call) { fetch("/fetch_live_stock_data", { headers: { "X-CSRFToken": document.getElementById("csrf").querySelector("input").value, "Content-type": "application/json" }, method: "POST", body: JSON.stringify({ // e.g. ticker is last part of the URL "ticker": window.location.href.split('/').slice(-1)[0] }) }) .then(response => response.json()) .then(function(data) { // Sanitize/format the incoming data so no double minus signs, etc. const cleanPrice = sanitizePrice(data.price); const cleanChange = sanitizeChange(data.change, data.change_type); // Update DOM $("#stock_price").empty().append(cleanPrice); $("#stock_price_difference").empty().append( `<div class="stock_${data.change_type}">${cleanChange}</div>` ); // Exchange name if (data.exchange) { $('#exchange_name').text(`(${data.exchange})`); } }) .catch(err => console.error("Error fetching stock data:", err)); } } /** * e.g. turns "$236.8500" into "$236.85" */ function sanitizePrice(rawPrice) { // Remove everything except digits, minus, plus, decimal let numeric = parseFloat(rawPrice.replace(/[^\d.-]/g, '')) || 0; return `$${numeric.toFixed(2)}`; } /** * Normalizes the change string. * Example: raw = "- $-5.8500 (-2.4104%)", changeType="loss" => "-5.85 (-2.41%)" * If changeType="gain", we might do "+5.85 (+2.41%)" instead. */ function sanitizeChange(rawChange, changeType) { // Regex tries to capture something like: "- $-5.8500 (-2.4104%)" // Group 1: optional sign before dollar // Group 2: optional sign + digits for the numeric difference // Group 3: optional sign + digits + % for the parenthetical part // // We'll parse them out, strip extra signs, and reapply a single sign // based on "changeType" (e.g. "loss" => "-"). // const re = /^(-?)\s*\$?(-?[\d.]+)\s*\((-?[\d.]+%)\)\s*$/; const match = rawChange.trim().match(re); if (!match) { // If it doesn't match, fallback: just strip out extra non-digit // and reapply sign from changeType return fallbackClean(rawChange, changeType); } // e.g. match[1] = "-" // match[2] = "-5.8500" // match[3] = "-2.4104%" let diffVal = parseFloat(match[2].replace(/[^\d.-]/g, '')) || 0; let pctVal = parseFloat(match[3].replace(/[^\d.-]/g, '')) || 0; // Decide sign from "changeType" const sign = (changeType === "loss") ? "-" : "+"; // Build final difference & percentage const finalDiff = `${sign}${Math.abs(diffVal).toFixed(2)}`; // e.g. "-5.85" const finalPct = `${sign}${Math.abs(pctVal).toFixed(2)}%`; // e.g. "(-2.41%)" return `${finalDiff} (${finalPct})`; } /** * If the data doesn't match our regex, do a simpler approach: * - strip all non-numerics except sign * - parse & reapply sign from changeType */ function fallbackClean(rawStr, changeType) { let numericVal = parseFloat(rawStr.replace(/[^\d.-]/g, '')) || 0; let sign = (changeType === "loss") ? "-" : "+"; return `${sign}${Math.abs(numericVal).toFixed(2)}`; } </script> </html>