<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2024"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="smsi-20250422.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-10">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-13">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-14">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-15">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-16">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-17">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-18">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-20">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:PeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-22">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-23">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-24">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-32">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-33">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-34">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-35">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-36">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-37">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-38">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-39">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000948708</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:AdjToCompAxis">ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:ExecutiveCategoryAxis">ecd:NonPeoNeoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-2">0000948708</dei:EntityCentralIndexKey>
    <dei:DocumentType contextRef="c-1" id="f-3">DEF 14A</dei:DocumentType>
    <dei:AmendmentFlag contextRef="c-1" id="f-4">false</dei:AmendmentFlag>
    <dei:EntityRegistrantName contextRef="c-1" id="f-1">Smith Micro Software, Inc.</dei:EntityRegistrantName>
    <ecd:PvpTableTextBlock contextRef="c-1" id="f-5">&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.927%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.990%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.051%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.051%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.051%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.051%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.051%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.055%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(a)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(b)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(c)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(d)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(e)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(f)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(g)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-bottom:1.5pt;margin-top:1.65pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:151%"&gt;Year &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:151%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:1.65pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Summary &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Compensation &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Table Total for &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1.5pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;PEO ($)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:1.65pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Compensation &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Actually Paid &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1.5pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;to PEO ($) &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:1.65pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Average &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Summary &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Compensation &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Table Total for &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Non-PEO &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1.5pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;NEOs ($)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:1.65pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Average &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Compensation &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Actually Paid &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;to Non-PEO &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1.5pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;NEOs ($) &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(2)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="margin-top:1.65pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Value of Initial &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fixed $100 &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Investment &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Based on Total &lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Shareholder &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:1.5pt;padding-left:0.02pt;padding-right:0.02pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Return ($)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Income (Loss) ($) (In thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 3.52pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;897,698&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;403,569&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;486,976&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;239,307&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19.73&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(48,697)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 3.52pt 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,002,989&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;527,419&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;552,058&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;368,472&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37.05&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(24,396)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 3.52pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,423,994&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;378,843&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;771,427&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;381,318&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43.21&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.02pt 2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,279)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</ecd:PvpTableTextBlock>
    <ecd:PeoTotalCompAmt contextRef="c-1" decimals="0" id="f-6" unitRef="usd">897698</ecd:PeoTotalCompAmt>
    <ecd:PeoActuallyPaidCompAmt contextRef="c-1" decimals="0" id="f-7" unitRef="usd">403569</ecd:PeoActuallyPaidCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt contextRef="c-1" decimals="0" id="f-8" unitRef="usd">486976</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt contextRef="c-1" decimals="0" id="f-9" unitRef="usd">239307</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:TotalShareholderRtnAmt contextRef="c-1" decimals="2" id="f-10" unitRef="usd">19.73</ecd:TotalShareholderRtnAmt>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-11" unitRef="usd">-48697000</us-gaap:NetIncomeLoss>
    <ecd:PeoTotalCompAmt contextRef="c-2" decimals="0" id="f-12" unitRef="usd">1002989</ecd:PeoTotalCompAmt>
    <ecd:PeoActuallyPaidCompAmt contextRef="c-2" decimals="0" id="f-13" unitRef="usd">527419</ecd:PeoActuallyPaidCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt contextRef="c-2" decimals="0" id="f-14" unitRef="usd">552058</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt contextRef="c-2" decimals="0" id="f-15" unitRef="usd">368472</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:TotalShareholderRtnAmt contextRef="c-2" decimals="2" id="f-16" unitRef="usd">37.05</ecd:TotalShareholderRtnAmt>
    <us-gaap:NetIncomeLoss contextRef="c-2" decimals="-3" id="f-17" unitRef="usd">-24396000</us-gaap:NetIncomeLoss>
    <ecd:PeoTotalCompAmt contextRef="c-3" decimals="0" id="f-18" unitRef="usd">1423994</ecd:PeoTotalCompAmt>
    <ecd:PeoActuallyPaidCompAmt contextRef="c-3" decimals="0" id="f-19" unitRef="usd">378843</ecd:PeoActuallyPaidCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt contextRef="c-3" decimals="0" id="f-20" unitRef="usd">771427</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt contextRef="c-3" decimals="0" id="f-21" unitRef="usd">381318</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:TotalShareholderRtnAmt contextRef="c-3" decimals="2" id="f-22" unitRef="usd">43.21</ecd:TotalShareholderRtnAmt>
    <us-gaap:NetIncomeLoss contextRef="c-3" decimals="-3" id="f-23" unitRef="usd">-29279000</us-gaap:NetIncomeLoss>
    <ecd:NamedExecutiveOfficersFnTextBlock contextRef="c-1" id="f-27">William W. Smith, Jr. was the Company&#x2019;s PEO during each of 2022, 2023 and 2024.  The other Non-PEO NEOs during 2024 and 2023 were Messrs. Kempton and Cameron and during 2022 were Mr. Kempton and David P. Sperling, the Company&#x2019;s Chief Technology Officer.</ecd:NamedExecutiveOfficersFnTextBlock>
    <ecd:PeoName contextRef="c-1" id="f-24">William W. Smith, Jr.</ecd:PeoName>
    <ecd:PeoName contextRef="c-3" id="f-25">William W. Smith, Jr.</ecd:PeoName>
    <ecd:PeoName contextRef="c-2" id="f-26">William W. Smith, Jr.</ecd:PeoName>
    <ecd:Additional402vDisclosureTextBlock contextRef="c-1" id="f-28">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%;padding-left:6.34pt"&gt;&#x201c;Compensation actually paid&#x201d; is an SEC-derived and required reporting metric, premised on the reported total in the Summary Compensation Table for the PEO and the average Summary Compensation Table totals for the Non-PEO NEOs, subject to the adjustments set forth below to arrive at &#x201c;compensation actually paid&#x201d; for our PEO and for our non-PEO NEOs during each of the years set forth in the table above.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%;padding-left:6.34pt"&gt;Columns (c) and (e) for year 2023 reflect immaterial revisions to those numbers presented in our 2024 proxy statement due to mathematical error.&lt;/span&gt;</ecd:Additional402vDisclosureTextBlock>
    <ecd:AdjToPeoCompFnTextBlock contextRef="c-1" id="f-29">&lt;div style="margin-bottom:6pt;margin-top:18pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:139%"&gt;Adjustments to Determine Compensation &#x201c;Actually Paid&#x201d; for PEO:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.927%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:56.627%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.142%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.687%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.144%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Summary Compensation Table Total for PEO (column (b) above)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;897,698&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,002,989&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,423,994&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deduction for amounts reported under the &#x201c;Stock Awards&#x201d; column the SCT&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(433,507)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(393,017)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(675,500)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increase for fair value at year end of awards granted during year and remain unvested at year end&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;67,427&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;172,859&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;333,047&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increase for fair value at vesting date of awards granted during year that vested during year&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,975&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;51,787&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,342&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Change in fair value from prior year end to current year end of awards granted prior to year that were outstanding and unvested at year end&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(103,120)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(192,159)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(427,952)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Change in fair value from prior year end to vesting date of awards granted prior to year that vested during year&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(89,563)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(93,870)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(294,593)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deduction for fair value from prior year of awards granted prior to year that were forfeited during year&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,341)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,170)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,495)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Compensation Actually Paid to PEO (column (c) above)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 4.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;403,569&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;527,419&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;378,843&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</ecd:AdjToPeoCompFnTextBlock>
    <ecd:PeoTotalCompAmt contextRef="c-1" decimals="0" id="f-30" unitRef="usd">897698</ecd:PeoTotalCompAmt>
    <ecd:PeoTotalCompAmt contextRef="c-2" decimals="0" id="f-31" unitRef="usd">1002989</ecd:PeoTotalCompAmt>
    <ecd:PeoTotalCompAmt contextRef="c-3" decimals="0" id="f-32" unitRef="usd">1423994</ecd:PeoTotalCompAmt>
    <ecd:AdjToCompAmt contextRef="c-4" decimals="0" id="f-33" unitRef="usd">-433507</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-5" decimals="0" id="f-34" unitRef="usd">-393017</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-6" decimals="0" id="f-35" unitRef="usd">-675500</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-7" decimals="0" id="f-36" unitRef="usd">67427</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-8" decimals="0" id="f-37" unitRef="usd">172859</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-9" decimals="0" id="f-38" unitRef="usd">333047</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-10" decimals="0" id="f-39" unitRef="usd">75975</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-11" decimals="0" id="f-40" unitRef="usd">51787</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-12" decimals="0" id="f-41" unitRef="usd">41342</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-13" decimals="0" id="f-42" unitRef="usd">-103120</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-14" decimals="0" id="f-43" unitRef="usd">-192159</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-15" decimals="0" id="f-44" unitRef="usd">-427952</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-16" decimals="0" id="f-45" unitRef="usd">-89563</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-17" decimals="0" id="f-46" unitRef="usd">-93870</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-18" decimals="0" id="f-47" unitRef="usd">-294593</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-19" decimals="0" id="f-48" unitRef="usd">-11341</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-20" decimals="0" id="f-49" unitRef="usd">-21170</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-21" decimals="0" id="f-50" unitRef="usd">-21495</ecd:AdjToCompAmt>
    <ecd:PeoActuallyPaidCompAmt contextRef="c-1" decimals="0" id="f-51" unitRef="usd">403569</ecd:PeoActuallyPaidCompAmt>
    <ecd:PeoActuallyPaidCompAmt contextRef="c-2" decimals="0" id="f-52" unitRef="usd">527419</ecd:PeoActuallyPaidCompAmt>
    <ecd:PeoActuallyPaidCompAmt contextRef="c-3" decimals="0" id="f-53" unitRef="usd">378843</ecd:PeoActuallyPaidCompAmt>
    <ecd:AdjToNonPeoNeoCompFnTextBlock contextRef="c-1" id="f-54">&lt;div style="margin-bottom:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:139%"&gt;Average Adjustments to Determine Average Compensation &#x201c;Actually Paid&#x201d; for Non-PEO NEOs:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:56.452%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.250%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.250%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.648%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 2.38pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.01pt;text-align:center;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Average Summary Compensation Table Total for Non-PEO NEOs (column (d) above)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;486,976&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;552,058&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;771,427&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deduction for the average of amounts reported under the &#x201c;Stock Awards&#x201d; column the SCT&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(221,007)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(209,076)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(386,000)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increase for average of fair value at year end of awards granted during year and remain unvested at year end&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,178&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;94,458&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;190,313&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increase for average of fair value at vesting date of awards granted during year that vested during year&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,509&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,549&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,624&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Change in average of fair value from prior year end to current year end of awards granted prior to year that were outstanding and unvested at year end&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(54,123)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(62,264)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(122,914)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Change in average of fair value from prior year end to vesting date of awards granted prior to year that vested during year&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(36,094)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(24,164)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(88,989)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 1.02pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deduction for average of fair value from prior year of awards granted prior to year that were forfeited during year&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,132)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11,089)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,143)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="margin-bottom:1.5pt;margin-top:1.65pt;padding-left:0.02pt;padding-right:0.02pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Average Compensation Actually Paid to Non-PEO NEOs (column (e) above) &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:700;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 4.77pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;239,307&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;368,472&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:0.5pt solid #000000;border-right:0.5pt solid #000000;border-top:0.5pt solid #000000;padding:2px 1.87pt 2px 0;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;381,318&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:139%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%"&gt; No dividends or other earnings were paid or accrued with respect to the equity contemplated in this table, and no adjustments, amendments or modifications were made with respect to any equity awards.&lt;/span&gt;&lt;/div&gt;</ecd:AdjToNonPeoNeoCompFnTextBlock>
    <ecd:NonPeoNeoAvgTotalCompAmt contextRef="c-1" decimals="0" id="f-55" unitRef="usd">486976</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt contextRef="c-2" decimals="0" id="f-56" unitRef="usd">552058</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:NonPeoNeoAvgTotalCompAmt contextRef="c-3" decimals="0" id="f-57" unitRef="usd">771427</ecd:NonPeoNeoAvgTotalCompAmt>
    <ecd:AdjToCompAmt contextRef="c-22" decimals="0" id="f-58" unitRef="usd">-221007</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-23" decimals="0" id="f-59" unitRef="usd">-209076</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-24" decimals="0" id="f-60" unitRef="usd">-386000</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-25" decimals="0" id="f-61" unitRef="usd">34178</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-26" decimals="0" id="f-62" unitRef="usd">94458</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-27" decimals="0" id="f-63" unitRef="usd">190313</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-28" decimals="0" id="f-64" unitRef="usd">35509</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-29" decimals="0" id="f-65" unitRef="usd">28549</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-30" decimals="0" id="f-66" unitRef="usd">23624</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-31" decimals="0" id="f-67" unitRef="usd">-54123</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-32" decimals="0" id="f-68" unitRef="usd">-62264</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-33" decimals="0" id="f-69" unitRef="usd">-122914</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-34" decimals="0" id="f-70" unitRef="usd">-36094</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-35" decimals="0" id="f-71" unitRef="usd">-24164</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-36" decimals="0" id="f-72" unitRef="usd">-88989</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-37" decimals="0" id="f-73" unitRef="usd">-6132</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-38" decimals="0" id="f-74" unitRef="usd">-11089</ecd:AdjToCompAmt>
    <ecd:AdjToCompAmt contextRef="c-39" decimals="0" id="f-75" unitRef="usd">-6143</ecd:AdjToCompAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt contextRef="c-1" decimals="0" id="f-76" unitRef="usd">239307</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt contextRef="c-2" decimals="0" id="f-77" unitRef="usd">368472</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:NonPeoNeoAvgCompActuallyPaidAmt contextRef="c-3" decimals="0" id="f-78" unitRef="usd">381318</ecd:NonPeoNeoAvgCompActuallyPaidAmt>
    <ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock contextRef="c-1" id="f-79">&lt;div style="margin-top:6pt;text-align:justify;text-indent:27.35pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:139%"&gt;Comparison to Total Shareholder Return.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%"&gt;  The values included in the column for &#x201c;compensation actually paid&#x201d; to our PEO and to the Non-PEO NEOs is calculated in accordance with the SEC promulgated disclosure rules in each of the fiscal years reported above and over the three-year cumulative period and shows how the compensation awarded to them changed year-over-year and is generally aligned to the Company&#x2019;s total shareholder return. This alignment is due to the fact &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%"&gt;that a significant portion of &#x201c;compensation actually paid&#x201d; is comprised of equity awards, which decreased in value during each of 2022, 2023 and 2024. The majority of equity awards granted to NEOs in 2024 were granted prior to, and therefore subject to, the Company&#x2019;s 1-for-8 reverse stock split completed in April 2024. In addition, base compensation for all NEOs was reduced by 10% beginning in March 2023, no bonuses were paid to the NEOs for the second quarter 2023 performance, and additional equity award grants in 2023 replaced cash bonuses for the third and fourth quarter 2023 performance, a portion of which remained unvested at December 31, 2023, which further aligned average compensation paid to our NEOs to shareholder return throughout 2023.  During 2024, the 10% reduction in NEO base salaries continued throughout the year, no cash bonuses were paid to the NEOs, and additional equity award grants replaced cash bonuses for the first through fourth quarter 2024 performance, a portion of which remained unvested at December 31, 2024, which further aligned average compensation paid to our NEOs to shareholder return throughout 2024.&lt;/span&gt;&lt;/div&gt;</ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock>
    <ecd:CompActuallyPaidVsNetIncomeTextBlock contextRef="c-1" id="f-80">&lt;div style="margin-top:6pt;text-align:justify;text-indent:27.35pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:139%"&gt;Comparison to Net Income. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%"&gt; We believe the amount of &#x201c;compensation actually paid&#x201d; to the PEO and to the Non-PEO NEOs is generally aligned with the Company&#x2019;s net loss, as the continued net loss is relatively consistent with the non-equity related compensation, which, as indicated above, is comprised of base salary and incentive compensation.  Our cash bonus compensation, which was paid for the first quarter of 2023 and for all of 2022, is generally measured based on revenue and operating expenses as compared to an operating plan, which align with the primary drivers of the net loss.  The cash bonus programs that our NEOs have historically participated in were suspended beginning in the second quarter of 2023 and continuing throughout 2024. As a result, no cash bonuses were paid to the NEOs for these periods. For each of the third and fourth quarters of 2023 and for all of 2024, the cash bonus component of our NEOs' compensation was replaced by performance-based equity awards.  The continued net losses in 2024, 2023 and 2022 also contributed to the decrease in share price over that period, which has resulted in the reductions in value of these equity awards.&lt;/span&gt;&lt;/div&gt;</ecd:CompActuallyPaidVsNetIncomeTextBlock>
    <ecd:InsiderTrdPoliciesProcAdoptedFlag contextRef="c-1" id="f-81">true</ecd:InsiderTrdPoliciesProcAdoptedFlag>
    <ecd:AwardTmgMnpiDiscTextBlock contextRef="c-1" id="f-82">&lt;div style="margin-top:6pt;text-indent:27pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%"&gt;Equity awards granted to our named executive officers and other key executives in fiscal 2024 were granted under our Equity Plan.  The Equity Plan authorizes the issuance of stock option awards to eligible participants, however no stock option awards were granted under the Equity Plan during 2024. Equity awards for executive officers are approved by our board of directors upon a recommendation by our compensation committee.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:27pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%"&gt;Pursuant to our Equity Plan, the exercise price of stock options is the fair market value of our Common Stock on the date of the grant.  When stock options are granted, the timing of grants occurs independent of the release of any material nonpublic information. We do not backdate grants of awards and do not have any program, plan, or practice to select equity award grant dates for executive officers in coordination with the release of material nonpublic information for the purpose of affecting the value of executive compensation.&lt;/span&gt;&lt;/div&gt;</ecd:AwardTmgMnpiDiscTextBlock>
    <ecd:AwardTmgMethodTextBlock contextRef="c-1" id="f-83">The Equity Plan authorizes the issuance of stock option awards to eligible participants, however no stock option awards were granted under the Equity Plan during 2024. Equity awards for executive officers are approved by our board of directors upon a recommendation by our compensation committee.</ecd:AwardTmgMethodTextBlock>
    <ecd:AwardTmgMnpiCnsdrdFlag contextRef="c-1" id="f-84">true</ecd:AwardTmgMnpiCnsdrdFlag>
    <ecd:AwardTmgPredtrmndFlag contextRef="c-1" id="f-85">false</ecd:AwardTmgPredtrmndFlag>
    <ecd:AwardTmgHowMnpiCnsdrdTextBlock contextRef="c-1" id="f-86">&lt;div style="margin-top:6pt;text-align:justify;text-indent:27pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:139%"&gt;Pursuant to our Equity Plan, the exercise price of stock options is the fair market value of our Common Stock on the date of the grant.  When stock options are granted, the timing of grants occurs independent of the release of any material nonpublic information. We do not backdate grants of awards and do not have any program, plan, or practice to select equity award grant dates for executive officers in coordination with the release of material nonpublic information for the purpose of affecting the value of executive compensation.&lt;/span&gt;&lt;/div&gt;</ecd:AwardTmgHowMnpiCnsdrdTextBlock>
    <ecd:MnpiDiscTimedForCompValFlag contextRef="c-1" id="f-87">false</ecd:MnpiDiscTimedForCompValFlag>
</xbrl>
